您可以使用find
相同的命令。请确保先在测试文件上运行此文件,然后再正常运行,然后再在实际路径(在所有实际文件上)上运行,以确保安全。这也需要gawk
较新的版本,其中包含inplace
用于将输出保存到文件本身的选项。
find your_path -type f -name "*.out" -exec awk -i inplace -f myawkProgram.awk {} +
您的awk
程序如下所示:根据您显示的示例(cat myawkProgram.awk
此处仅用于显示awk程序的内容)。
cat myawkProgram.awk
{
gsub("keystring","newstring",$0); print $0
}
第二个选择是通过执行类似的操作将所有.out
格式文件传递到gawk
程序本身-inplace
(但再次确保先在单个测试文件上运行此文件,然后在确信命令后再运行实际命令以确保安全):
awk -i inplace '{gsub("keystring","newstring",$0); print $0}' *.out
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…