如何在多个文件上使用find命令执行awk脚本

时间:2016-08-30 04:05:23

标签: linux bash awk

对于单个文件

,此命令对我来说很好
awk -f test.awk template.yml file.yml > tmp && mv tmp file.yml

fins命令我找到了我想要的所有文件

find . -wholename "*vars/*.yml"

我不知道如何在所有文件上执行上面的awk命令,以便它们可以在适当的位置进行替换。我有旧版本的awk 3.1

1 个答案:

答案 0 :(得分:4)

GNU awk具有就地修改选项,如果你有GNU awk

find . -wholename "*vars/*.yml" -exec awk -i inplace -f test.awk {} +

否则,您需要一次处理一个文件:

find . -wholename "*vars/*.yml" -exec \
     bash -c 'awk -f test.awk "$1" >"$1".tmp && mv "$1".tmp "$1"' _ {} \;