次のスキーマがあります。
foo bar
常にfoo
同じですが、変更するbar
ことができます。ハッシュテーブルがあり、すべての値に対してbar
新しい値があります。私が今やっていることは:
sed -i 's/foo bar/foo new_value/g' file
foo
代替文字列で重複を回避する方法があると確信しています。sed
似たようなものを提供しますか?良い
sed -i 's/foo @@bar@@/new_value/g' file
@@string@@
交換する必要がある値です。
答え1
sed -i 's/\(foo \)bar/\1new_value/g' file
この\( \)
シーケンスはテキストを「キャプチャ」して代替文字列として配置できます\1
。これは、\1
使用するキャプチャされたテキストを表す数字を使用して複数回実行できます。キャプチャされたテキストは順次計算されます\(
。