awk计数事件和输出计数,并输出上次计数事件的完整记录
我想在单个列中计算发生次数,并输出这些发生次数的计数以及最后一次计数的完整记录 这对于计数很有效,但也希望从输出中获得更多描述awk计数事件和输出计数,并输出上次计数事件的完整记录,awk,Awk,我想在单个列中计算发生次数,并输出这些发生次数的计数以及最后一次计数的完整记录 这对于计数很有效,但也希望从输出中获得更多描述 awk '{count[$1]++}END{for(j in count) print j,""count[j]""}' 如果输入为: A horse pen A dog apple B cat house C mouse grape C mouse shoe C elephant pole 产出将是: A 2 dog apple B 1 cat house C 3
awk '{count[$1]++}END{for(j in count) print j,""count[j]""}'
如果输入为:
A horse pen
A dog apple
B cat house
C mouse grape
C mouse shoe
C elephant pole
产出将是:
A 2 dog apple
B 1 cat house
C 3 elephant pole
这应该是可行的,但要注意,订单保留并没有得到保证
awk '{k=$1; a[k]++; $1="";
sub(/^ +/, "", $0); b[k]=$0};
END{for (k in a) print k, a[k], b[k]}' file.txt
A 2 dog apple
B 1 cat house
C 3 elephant pole
如果订单对您至关重要,请使用
GNU awk
尝试以下操作:
awk '{
ary[$1]++; line[$1] = $2 FS $3
}
END {
n = asorti(ary, sorted_ary)
for(i = 1; i <= n; i++) {
print sorted_ary[i], ary[sorted_ary[i]], line[sorted_ary[i]]
}
}' file
$awk'{
元[$1]++;行[$1]=$2fs$3
}
结束{
n=asorti(ari,排序的_ari)
对于(i=1;i
$ cat file
A horse pen
A dog apple
B cat house
C mouse grape
C mouse shoe
C elephant pole
$ awk '{
ary[$1]++; line[$1] = $2 FS $3
}
END {
n = asorti(ary, sorted_ary)
for(i = 1; i <= n; i++) {
print sorted_ary[i], ary[sorted_ary[i]], line[sorted_ary[i]]
}
}' file
A 2 dog apple
B 1 cat house
C 3 elephant pole