2014-03-27 16 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 
相关问题