![awk 打印输出重定向](https://linux22.com/image/979518/awk%20%E6%89%93%E5%8D%B0%E8%BE%93%E5%87%BA%E9%87%8D%E5%AE%9A%E5%90%91.png)
我正在编写一个 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
。