我正在学习awk,我想知道是否有一个选项可以将更改写入文件,类似于sed,在这里我将使用-i选项保存对文件的修改。
我知道我可以使用重定向来写更改。但是,在awk中是否有这样做的选项?

最佳答案

在最新的GNU Awk中(自4.1.0 released以来),它可以选择"inplace" file editing
[…]使用新设施构建的“就地”扩展可用于模拟GNU“sed -i”功能。[...]
示例用法:

$ gawk -i inplace '{ gsub(/foo/, "bar") }; { print }' file1 file2 file3

要保留备份:
$ gawk -i inplace -v INPLACE_SUFFIX=.bak '{ gsub(/foo/, "bar") }
> { print }' file1 file2 file3

09-11 17:46