循环遍历目录和文件bash脚本 - awk不写入文件

时间:2012-09-07 12:12:58

标签: bash awk find

我想遍历一些包含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

2 个答案:

答案 0 :(得分:2)

您必须使用临时文件:

awk ... "$f" > "$f".tmp; mv "$f".tmp "$f"

答案 1 :(得分:1)

问题不在awk,问题在于重定向。无法写入您正在阅读的文件。