我正在学习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