1. 程式人生 > >請大神指導從大日誌文件中統計關鍵字次數的辦法

請大神指導從大日誌文件中統計關鍵字次數的辦法

行數據 文本 一次 next 自己 end 不知道 lock printf

  1. awk ‘NR==FNR{a[$0]=1;next}{if($0 in a)b[$0]++}END{for (i in b)print i,b[i]}‘ filea fileb | sort
  2. 文件A中有若幹行數據,每行為一個關鍵字
    文件B為大日誌文件,大小為10G以下

    想著能夠統計出文件A中每個關鍵字在B中的出現次數,例如
    行1,3
    行2,10
    行3,100
    。。。。。

    最笨的辦法是逐行讀入後用grep,但是太費時間,有沒有只打開一次B文件,就能把A中所有行都統計出來的辦法呢?
    1. aaa 3
    2. bbb 3
    3. ccc 4
    4. ddd 2
    5. 給個大概的思路你,因為不知道你的文本時怎樣的,所以沒考慮邊界問題,自己根據實際情況改一下吧~

      awk ‘ARGIND==1{a[$0]}ARGIND==2{for(i in a)if($0~i)a[i]++}ARGIND==3{printf "%s,%d\n",$0,a[$0]}‘ a b

請大神指導從大日誌文件中統計關鍵字次數的辦法