2011-12-23 39 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腳本程序幫我走出來得到一個文件,因此該搜索模式搜索標準,我能夠從其他獲得記錄文件。但是,如果文件中存在兩次相同的內容,而且僅搜索和打印一次,則此腳本將採用唯一的搜索記錄。我想要重複的記錄來獲得文件中該記錄的出現次數。awk命令來獲得搜索記錄與搜索模式的occurence數

+6

一些示例數據和預期的輸出會有所幫助。 – 2011-12-23 05:18:52

回答

0

從你的文章我收集數組'a'存儲所有的記錄和數組''存儲所有的正則表達式搜索模式。

只要改變你的if語句:

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

不完全,'!一個[$ 0] ++'意味着它只存儲唯一值而不是重複值。 – 2011-12-23 16:12:26