web-dev-qa-db-ja.com

多数のXMLファイルの再フォーマット

ネストされたディレクトリ構造全体に散在する多数のXMLファイルを操作しています。

私は以下を試しました:

$ find . -name "*.xml" -type f | xargs -- xmllint --format

問題は、フォーマットされたXML出力を画面に生成しますが、ファイルを変更しないことです。

このコマンドを変更して、実際のファイルの内容を変更するにはどうすればよいですか?

11
Harry

私は通常、これらの問題を間接層で攻撃します。あなたが望むことをするシェルスクリプトを書いて、それを呼んでください。まずはお勧めします

#! /bin/sh
for file
do
   xmllint --format $file > $file.tmp && mv $file.tmp $file
done

ファイルを1つまたは2つ手動で試して、xargsで置き換えることができます。

find . -name "*.xml" -type f | xargs -- xmltidy.sh
6
Julian