我想遍历一些包含 xml 文件的目录。对于每个文件,我想应用 awk 命令并将输出再次写入文件。但写入的文件是空的。为什么?我使用以下脚本:
#!/bin/bash
for f in `find /myDir/ -iname "*.xml"`
do
awk '/<string name="my\/ attribute" optional="false">/,/<\/string>/ {sub(/<value>(.*)<\/value>/,"<value>none</value>")}1' $f >$f
done
最佳答案
您必须使用临时文件:
awk ... "$f" > "$f".tmp; mv "$f".tmp "$f"
关于bash - 循环目录和文件 bash 脚本 - awk 不写入文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12317865/