Ubuntu 14.04信頼できるTal。
何百ものxmlファイルを含むことができ、そして順番に多くのxmlファイルを含むことができる "testmag"というディレクトリがあるとしましょう。 xmlファイルの名前はわかりませんが、そのうちの1つにタグが含まれていることはわかっています<dbname>....</dbname>
。
上記のタグを含むファイルを見つけて、タグ値を端末に出力として提供するにはどうすればよいですか?
ベストアンサー1
find
以下は、一致する項目を含むファイルのファイル名も出力するソリューションです。
find . -name "*.xml" -exec grep '<dbname>' {} \; \
-exec echo -e {}"\n" \; \
| sed 's/<dbname>\(.*\)<\/dbname>/\1/g'
説明する
find . -name "*.xml"
現在のディレクトリですべてのxmlファイルを再帰的に見つけます。-exec grep '<dbname>' {} \;
各ファイルの検索パターン<dbname>
-exec echo -e {}"\n" \;
echoファイル名+新しい行(-e
オプションはecho解釈を作成します\n
)| sed 's/<dbname>\(.*\)<\/dbname>/\1/g'
sed
ラベルの間に含まれるフィールドのみを印刷するパイプ出力<dbname></dbname>
。
echo -e ...
注1:必要に応じて新しい行を追加したり、行に下線を付けたりするなど、各ファイルの結果が明確にリストされるように出力形式を指定できます。
.
注2:各ファイルのパスは(たとえば)./subfolder1/file.xml
。絶対パスが必要な場合はを選択してくださいfind $PWD -name ...
。