使用awk统计字段中的记录数
我有一个像这样的大文件使用awk统计字段中的记录数,awk,count,Awk,Count,我有一个像这样的大文件 C1,C2,C3 C1,C2 C5 C3,C5 我期望有一个这样的输出 C1,C2,C3 3 C1,C2 2 C5 1 C3,C5 2 我想用shell制作这个。你们能帮帮我吗? 谢谢你 awk 'BEGIN{FS=","}{printf "%-20s\t%d\n",$0,NF;}' file 应该给 C1,C2,C3 3 C1,C2 2 C5
C1,C2,C3
C1,C2
C5
C3,C5
我期望有一个这样的输出
C1,C2,C3 3
C1,C2 2
C5 1
C3,C5 2
我想用shell制作这个。你们能帮帮我吗?
谢谢你
awk 'BEGIN{FS=","}{printf "%-20s\t%d\n",$0,NF;}' file
应该给
C1,C2,C3 3
C1,C2 2
C5 1
C3,C5 2
注意考虑到行的最大长度,您需要在逻辑上调整宽度
awk 'BEGIN{FS=","}{printf "%-20s\t%d\n",$0,NF;}' file
应该给
C1,C2,C3 3
C1,C2 2
C5 1
C3,C5 2
注意考虑到行的最大长度,您需要在逻辑上调整宽度awk中的另一行:
$ awk '{
m=(m<(n=length($0))?n:m) # get the max record length
a[NR]=$0 } # hash to a
END {
for(i=1;i<=NR;i++) # iterate and (below) output nicely
printf "%s%"(m-length(a[i])+4)"s\n",a[i],gsub(/,/,"&",a[i])+1 }
' file
C1,C2,C3 3
C1,C2 2
C5 1
C3,C5 2
$awk'{
m=(mawk中的另一个:
$ awk '{
m=(m<(n=length($0))?n:m) # get the max record length
a[NR]=$0 } # hash to a
END {
for(i=1;i<=NR;i++) # iterate and (below) output nicely
printf "%s%"(m-length(a[i])+4)"s\n",a[i],gsub(/,/,"&",a[i])+1 }
' file
C1,C2,C3 3
C1,C2 2
C5 1
C3,C5 2
$awk'{
m=(m到目前为止你做了什么??“记录中的字段”,没有?到目前为止你做了什么??“记录中的字段”,没有?