2013-01-07

sedで&(アンパサンド)に置換する

sedコマンドで&に置換しようとすると、&はヒットした文字列を意味してしまうので意図する通りに置換されてくれません
$ hoge="a&b"
$ echo "xyz" | sed "s/y/$hoge/"
xaybz
な感じ。 なので、bashに組み込まれている置換コマンドを併用してやるとうまくいきました
$ echo "xyz" | sed "s/y/${hoge/&/\&}/"
xa&bz
ほらねヾ(*・ω・)シ

0 件のコメント:

コメントを投稿