2016-10-14 6 views
0
をPerlの正規表現を実行し

私は私がコマンド.But、コマンドラインからPerlの正規表現を実行したいというデータdata.Onいくつかのxmlが唯一の非ZIPファイルに取り組んでいるという点で、zipファイルのコレクションを持っていますzipファイルの場合、それはウォークリングではありません。すべてのzipファイルにUNIX

perl -ne '/ID:([0-9.]+).+Test=\"([\d\w.-\s]+)\"/ and print "$1 $2\n"' data.log.gz | sort -nr | uniq -c | sort -nr 

サンプルXML構造:

ABC ID:12342132: <?xml version="1.0" encoding="UTF-8"?><a Test="ABC"></a> 
+1

テスト前にデータを解凍する必要があります。 'zcat data.log.gz | perl .... | ... ' – Mike

+1

さらにXMLが必要です。しかし、答えは '正規表現を使用しないでください。パーサーを使用する '。 – Sobrique

+1

データの先頭にある 'ABC ID:12342132'は、あなたが持っているものがXMLではないことを意味します。 –

答えて

1

ZIPファイルはあなたが簡単にPerlで解析できる形式にしたいデータが含まれていません。最初に解凍する必要があります。しかし、Unixのコマンドzcatは、あなたのためにその場であなたをすることができます。

$ zcat data.log.gz | perl ... 
+0

私はこれを試しましたが、これは動作していません – Developer

+1

"これは動作していません"という悪い問題のレポートを@Developerが理解すると思います。質問を更新して、試した内容と予期しなかった動作を正確に記載してください。 –

+0

@Developer:「これは動作していません」と言ったことに興味がありましたが、それ以上の説明はありません。 –

関連する問題