2017-02-01 3 views
0

Webサービスのリクエストと応答のXMLの巨大なログファイルがあります。 各Webサービスは、UNIXコマンドを使用してUnix:WildCard SubString XMLタグ間の検索

<s:Envelope ......Some tags before Request tag <xyzServiceRequest>Request Data </xyzServiceRequest></s:Body></s:Envelope> 


<s:Envelope ....Some more tags before Request tag <abcServiceRequest xmlns="urn" >Request Data of another service </abcServiceRequest></s:Body></s:Envelope> 

<s:Envelope ...Few more tags before request <defServiceRequest xmlns="urn" /> </s:Body></s:Envelope> 

以下のような一般的な要求タグを持って、私はデータのみ上記からのサービス要求名を抽出したいです。

xyzServiceRequest

abcServiceRequest

defServiceRequest

答えて

1

使用

grep -o '<[^</]*ServiceRequest' YourLogFile | sed 's/<//' 

出力は次のようにする必要があります

+1

重複した結果を避けるためにこれを使用します。 'grep -o '<[^

+0

@arun kumar:面白いです。私は '並べ替え| uniq 'であるが、これはN log Nのコストを追加する。 'についての素晴らしいことは|並べ替え| uniq 'は、uniq -cを追加して出現回数を取得するのが簡単だということです。私はあなたもawkでこれを行うことができると確信しています。 –