GNU sed排除了无与伦比的行

时间:2013-01-07 12:54:51

标签: file-io sed gnu

我使用GNU sed命令(GNU sed版本4.2.1)进行搜索并替换文件。 我希望输入文件保持完整,因此我使用sed的文件写入选项。

以下是命令

sed -e "s/INSERT/UPDATE/w  output.txt" "input.txt"

但是上面命令的问题是,它不会写出不匹配的行。即,如果没有找到要搜索的文本的行,则该行不会被写入output.txt文件。

我希望在output.txt

中写入不匹配的行

如何实现这一目标?

1 个答案:

答案 0 :(得分:1)

使用w作为单独的命令,即:

sed -e 's/INSERT/UPDATE/' -e 'w output.txt' input.txt

或者,如果您的sed支持,则可以使用分号:

sed -e 's/INSERT/UPDATE/;w output.txt' input.txt

但是,如果你真的只想在文件中输出,请使用重定向:

sed -e 's/INSERT/UPDATE/' input.txt > output.txt