2016-04-08 31 views
2

Bazı IP'leri bir metin dosyasında değiştirmek için güzel bir düzenli yazıyorum.sed: sonlandırılmamış 's' komutu '

sed -r "s/[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}/${APP_IP}/g" /path/to/my/file 

Ancak veriyor: $ {APP_IP} ben eksik

:

sed: -e expression #1, char 49: unterminated 's' command Ben aksi takdirde edebi değişken adı dizelerle istenen değiştirir çift tırnak ihtiyaç?

+1

Sorununuzu yeniden üretemiyorsunuz - APP_IP'nin değeri nedir? –

+3

Sorun, büyük olasılıkla $ $ 'da bulunan bir '/', satırsonu ya da diğer sonlandırıcı bir karakter olacaktır. –

+0

Kodun benim için gayet iyi çalışıyor :) – Joda

cevap

0

SOLVED: $ APP_IP değişkenini test edilen IP'ye manuel olarak ayarladığımda çalışıyor gibi görünüyor. Değişkeni çıktıdan (ping'den) alırsam hata verir. Değişkende özel karakterler olmalı. Teşekkürler beyler.

+0

Çıktı yeni satır içeriyor mu? –

+1

Evet, APP_IP = $ (echo $ APP_IP | tr -d '\ n') kullanarak çıkardım ve işe yaradı :) – arush436

+0

Sadece APP_IP = $ (echo -n "$ APP_IP") yapabilirsiniz. – edi9999