对于单个文件
,此命令对我来说很好awk -f test.awk template.yml file.yml > tmp && mv tmp file.yml
fins命令我找到了我想要的所有文件
find . -wholename "*vars/*.yml"
我不知道如何在所有文件上执行上面的awk命令,以便它们可以在适当的位置进行替换。我有旧版本的awk 3.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"' _ {} \;