我正在编写一个 bash 脚本,在该 bash 脚本中我有一行类似这样的代码:
awk '/TextToBeMatched/ { print; print "TextToInsert"; next }1' "/Path/to/specified/file.extension"
目前它所做的是在指定文件中找到“TextToBeMatched”,然后将其替换为“TextToInsert”。但我希望它不是将输出打印到控制台会话,而是将其打印到文件,我想我会使用输出重定向来做到这一点,那么我究竟该怎么做呢?
我读到过有关输出重定向的内容awk
这里,但它对我的代码没有太大的帮助。
答案1
要将输出保存awk
到文件,只需使用重定向:
awk > /path/to/output/file ...
由于 shell 处理重定向并清空输出文件,因此您不能将同一个文件用于输入和输出 - 当 awk 到达它时,该文件将被 shell 截断。
使用 GNU awk,您可以使用就地编辑插件将输出保存到同一个文件:
gawk -i inplace ...
其工作原理与此非常相似sed -i
。