在awk中,可以使用数组来实现计数取决于列中的值。以下是一个示例代码:
假设有一个名为data.txt的文本文件,内容如下:
apple
orange
apple
banana
orange
我们想要统计每种水果出现的次数。可以使用awk来实现:
awk '{count[$1]++} END {for (fruit in count) print fruit, count[fruit]}' data.txt
输出结果为:
apple 2
orange 2
banana 1
解释:
{count[$1]++}:这一行是awk的主体代码块,$1 表示当前行的第一个列,count[$1] 表示一个名为count的数组,以当前行的第一个列的值为索引。count[$1]++ 表示对应的索引加1,即对应的值加1。END {for (fruit in count) print fruit, count[fruit]}:这一行是在所有行处理完毕后执行的代码块。for (fruit in count) 表示遍历数组count中的每个元素,fruit 是每个元素的索引(即水果的名称),count[fruit] 表示数组中索引为fruit的值(即水果出现的次数)。print fruit, count[fruit] 则将水果的名称和出现的次数打印出来。这样,我们就可以根据列中的值计数了。
上一篇:awk中的计数器增加条件未生效
下一篇:AWK中的嵌套数据过滤