2011-10-26 15 views
1

私はIPを動的に置き換えたいと思っていますが、somehwo sedは実際の値の代わりに$ IPを配置しています。sedを使用して置き換えます

IP=10.50.33.44 
PORT=5774 
sed -i~ 's/https:\/\/10.11.12.13:8443/https:\/\/$IP:$PORT/g' abc.txt 

正しい値を取得する際にお手伝いできますか?変数の展開のための

+1

少しヒント: '/'文字をエスケープしたくない場合は、 's%%'のようなものを使用できます。 '/'や '%'文字はもちろん、パターンや置換の中に見つからないものであってもかまいません。 –

答えて

3

二重引用符を使用"

sed -i~ "s/https:\/\/10.11.12.13:8443/https:\/\/$IP:$PORT/g" abc.txt 

@Joachimは異なる区切り文字を使用して、言ったように。例えばテーマに、

sed -i~ "s;https://10.11.12.13:8443;https://$IP:$PORT;g" abc.txt 
0

バリエーション:私は常に二重引用符を使用した場合、シェルなどのコマンドは時々あなたをつまずかせることができSED/awkは/ perlの...を囲むように単一引用符を使用します。 私は、変数引用倍増することが最善見つける:それはAltキーコントロールの(キーバインディングMCE、「ベルトとブレース」として

sed -i~ 's/https:\/\/10.11.12.13:8443/https:\/\/'"$IP"':'"$PORT"'/g' abc.txt 

を、私は普通のbashのコマンドラインで対話的に私の命令を構成するようほとんどのキーボードで-e)は、送信前にコマンドを補間します。コマンドが実際に何を得ているのかを視覚的に確認できます。

関連する問題