我基本上想这样做:
cat file | grep '<expression>' | sed 's/<expression>/<replacement>/g'
而不必写两次表达式:
cat file | sed 's/<expression>/<replacement>/g'
有没有办法告诉sed不打印与替代命令中的正则表达式不匹配的行?
假设你有一个包含要替换的文本的文件。
$ cat new.text A B
如果要将A更改为理想状态,我们将执行以下操作:
$ sed 's/A/a/' new.text a B
但是如果您不想获得不受替代影响的行,则可以使用n和p的组合,如下所示:
$ sed -n 's/A/a/p' new.text a