Awk 如何使用变量搜索对出现X次以上的行进行排序、uniq和显示

Awk 如何使用变量搜索对出现X次以上的行进行排序、uniq和显示,awk,Awk,将“2”限制更改为使用变量的正确方法是什么?我有一个IP地址文件,我只想报告计数超过max变量的地址 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} 谢谢 问题基于此链接: 如果您的awk脚本是另一个创建变量

将“2”限制更改为使用变量的正确方法是什么?我有一个IP地址文件,我只想报告计数超过max变量的地址

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}
谢谢

问题基于此链接:


如果您的
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

如果您的
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
使用冗长的var名称保存解释

使用冗长的var名称保存解释

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