0

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

以下是命令

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

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

我希望在 output.txt 中写入不匹配的行

如何实现?

4

1 回答 1

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
于 2013-01-07T13:01:32.487 回答