2

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

2 回答 2

2

您必须使用临时文件:

awk ... "$f" > "$f".tmp; mv "$f".tmp "$f"
于 2012-09-07T12:23:15.787 回答
1

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

于 2012-09-07T12:22:18.317 回答