2011-12-23 13 views
0
awk 'FNR==NR { ! a[$0]++ ; next } 
     { b[$0]++ } 
     END { 
      for (i in a) { 
       for (k in b) { 
        if (a[i]==1 && i ~ k) { print i } 
       } 
      } 
     }' file1 file2 

上記awkスクリプトプログラムは、1つのファイルから検索条件を取得するのに役立ちました。その検索パターンに基づいて、他のレコードからレコードを取得できました。ファイル。しかし、このスクリプトでは、同じコンテンツがファイル内に2回も存在する場合には、一度だけ検索して印刷するというユニークな検索レコードを取得しています。私は、ファイル内のそのレコードの出現回数を取得するために、繰り返しレコードも取得します。あなたのポストから検索パターンの出現数を含む検索レコードを取得するAwkコマンド

+6

いくつかのサンプルデータと期待出力が役立つだろう。 –

答えて

0

は、私は、配列「」すべてのレコードと配列を記憶している「b」は、すべての正規表現の検索パターンを記憶していることを収集します。

だけに、あなたのif文を変更します。

if (i ~ k) { print i, a[i] } #a[i] prints the count of the record 
+2

正確には、 '! a [$ 0] ++ 'は、重複する値ではなく一意の値を格納するだけであることを意味します。 –

関連する問題