sed で置換に一致しない行を削除する方法 質問する

sed で置換に一致しない行を削除する方法 質問する

基本的にこれをやりたいです:

cat file | grep '<expression>' | sed 's/<expression>/<replacement>/g'

式を2回書く必要はありません。

cat file | sed 's/<expression>/<replacement>/g'

sed に、置換コマンドの正規表現に一致しない行を印刷しないように指示する方法はありますか?

ベストアンサー1

置換したいテキストを含むファイルがあるとします。

$ cat new.text 
A
B

A を a に変更したい場合は、理想的には次のようにします。

$ sed 's/A/a/' new.text 
a
B

しかし、置換の影響を受けない行を取得したくない場合は、次のようにnとpの組み合わせを使用できます。

$ sed -n 's/A/a/p' new.text 
a

おすすめ記事