私は基本的にこれをしたい:
cat file | grep '<expression>' | sed 's/<expression>/<replacement>/g'
式を2回記述する必要はありません。
cat file | sed 's/<expression>/<replacement>/g'
代替コマンドの正規表現と一致しない行を印刷しないようにsedに指示する方法はありますか?
置換したいテキストを含むファイルがあるとします。
$ cat new.text
A
B
Aをtheに変更したい場合は、理想的には次のようにします-
$ sed 's/A/a/' new.text
a
B
ただし、置換の影響を受けない行を取得したくない場合は、次のようにnとpの組み合わせを使用できます-
$ sed -n 's/A/a/p' new.text
a
これはあなたのために働くかもしれません:
sed '/<expression>/!d;s//<replacement>/g' file
または
sed 's/<expression>/<replacement>/gp;d' file
cat file | sed -n '/<expression>/{s//<replacement>/g;p;}'