2017-06-30 4 views
-1

大量のXMLファイルに注文記録が含まれています。彼らは例えば、新しい出力ファイル に注文レコードに「完了」に一致している場合、私はすべての注文レコードを抽出したい - bashスクリプトを使用してxmlファイルの数から特定のレコードを除外したい

<Order> 
    <ID>..</Id> 
    <Date>..</Date> 
    <Status>Completed<Status> 
</Order> 

は、上記の例を参照

、私は上記の一致している全体の注文の詳細を抽出したいです調子。

+1

このタスクにはbashを使用する必要がありますか?あなたの好みの言語でパーサを使うことを強くお勧めします。それはあなたに頭痛の多くを保存します。 – jgmh

+3

ようこそスタックオーバーフロー。これはコード作成サービスではありません。 [ツアー]を取って[ヘルプ]ページ、特に[質問]を読んで時間をかけてください。私たちは助けてくれることをうれしく思いますが、まず問題を自分で解決する努力をしてください。がんばろう。 –

+0

こんにちは、jgmh、 私は次のコマンドを使用してgrepが表示されているかどうかを確認していましたが、私が見ているものを正確に表示していません。 grep "完了" order - *。XML | sed -n '/ /、/ <\/Order>/p'> completed.xml –

答えて

0
grep -A 4 '<Order>' xml_files | grep -B 3 -A 1 '<Status>Completed<Status>' 

上記の 'xml_files'をすべてのxmlファイルに置き換えます。 globbing(*)を使用すると、同様の名前が付いた複数のファイルを取得できます。

関連する問題