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 に答える