2016-04-08 1 views
2

テキストファイルの中のいくつかのIPを置き換える素敵な正規表現を書いています。sed:unterminatedの 'command`

それが与えているしかし
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 

:私は何をしないのです$ {APP_IP}

sed: -e expression #1, char 49: unterminated 's' command

を、私は二重引用符を必要とするそれ以外の場合は、リテラル、変数名で希望の文字列を置き換えますか?

+1

問題を再現することはできません。「APP_IP」の値は何ですか? –

+3

問題は、 '/'、改行、または '$ APP_IP'にある他の終了文字になる可能性があります。 –

+0

あなたのコードは私のためにうまくいきます:) – Joda

答えて

0

解決済み:テスト中のIPに変数$ APP_IPを手動で設定したときに動作しているようです。変数を(pingの)出力から取得すると、エラーが発生します。変数には特殊文字でなければなりません。みんなありがとう。

+0

出力に改行が含まれていますか? –

+1

はい、APP_IP = $(echo $ APP_IP | tr -d '\ n')を使用して取り出しました。 – arush436

+0

APP_IP = $(echo -n "$ APP_IP") – edi9999