我想遍历一些包含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
答案 0 :(得分:2)
您必须使用临时文件:
awk ... "$f" > "$f".tmp; mv "$f".tmp "$f"
答案 1 :(得分:1)
问题不在awk
,问题在于重定向。无法写入您正在阅读的文件。