Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我正在使用 GNU sed 命令(GNU sed 4.2.1 版)在文件中进行搜索和替换。我希望输入文件保持完整,因此我使用 sed 的文件写入选项。
以下是命令
sed -e "s/INSERT/UPDATE/w output.txt" "input.txt"
但上述命令的问题是,它不会写入不匹配的行。即如果没有找到要搜索的文本的行,则该行不会写入 output.txt 文件中。
我希望在 output.txt 中写入不匹配的行
如何实现?
用作w单独的命令,即:
w
sed -e 's/INSERT/UPDATE/' -e 'w output.txt' input.txt
或者,如果您sed支持它,您可以使用分号:
sed
sed -e 's/INSERT/UPDATE/;w output.txt' input.txt
但是,如果您真的只想在文件中输出,请使用重定向:
sed -e 's/INSERT/UPDATE/' input.txt > output.txt