我使用GNU sed命令(GNU sed版本4.2.1)进行搜索并替换文件。 我希望输入文件保持完整,因此我使用sed的文件写入选项。
以下是命令
sed -e "s/INSERT/UPDATE/w output.txt" "input.txt"
但是上面命令的问题是,它不会写出不匹配的行。即,如果没有找到要搜索的文本的行,则该行不会被写入output.txt文件。
我希望在output.txt
中写入不匹配的行如何实现这一目标?
答案 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