2014-03-27 14 views
0

將「2」限制更改爲使用變量的正確方法是什麼?我有一個IP地址文件,我只想報告最大變量的計數地址。如何對使用變量搜索出現超過X次的行進行排序,uniq和顯示行

awk '{a[$0]++}END{for(i in a){if(a[i] > **2**){print i}}}' a.txt 

嘗試1:

max=5 
awk '{a[$0]++}END{for(i in a){if(a[i] > max){print i}}}' a.txt 

嘗試2:

$max, max {max} 

感謝

問題基於此鏈接:

Stackoverflow - https://stackoverflow.com/questions/20147878/how-to-sort-uniq-and-display-line-that-appear-more-than-x-times?newreg=67b23722d94743d48e149713f96b10fa

回答

2
maxInShell=5 
awk -v maxInAwk="$maxInShell" '{a[$0]++}END{for(i in a){if(a[i] > maxInAwk){print i}}}' a.txt 

使用冗長的變種名稱保存解釋。

1
awk -v max=5 '{a[$0]++}END{for(i in a){if(a[i] > max){print i}}}' a.txt 
1

如果您awk腳本是誰創建了變量max另一個shell腳本的一部分,那麼你可以通過使用awk-v選擇使用該變量在awk腳本。

例如:

awk -v max="$max" '{a[$0]++}END{for(i in a){if(a[i] > max){print i}}}' a.txt 
相關問題