对于单个文件,此命令对我而言工作正常
awk -f test.awk template.yml file.yml > tmp && mv tmp file.yml
Run Code Online (Sandbox Code Playgroud)
fins命令我找到了我想要的所有文件
find . -wholename "*vars/*.yml"
Run Code Online (Sandbox Code Playgroud)
我不确定如何在所有文件上执行以上awk命令,以便可以将它们替换到位。我有AWK 3.1的旧版本
awk
如果您有GNU,则GNU 具有就地修改选项awk
:
find . -wholename "*vars/*.yml" -exec awk -i inplace -f test.awk {} +
Run Code Online (Sandbox Code Playgroud)
否则,您需要一次处理一个文件:
find . -wholename "*vars/*.yml" -exec \
bash -c 'awk -f test.awk "$1" >"$1".tmp && mv "$1".tmp "$1"' _ {} \;
Run Code Online (Sandbox Code Playgroud)