awk 打印输出重定向

awk 打印输出重定向

我正在编写一个 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

相关内容