我试图用“,”定界打印awk命令的输出。 尝试使用cut获得相同的输出。
cat File1
dot|is-big|a
dot|is-round|a
dot|is-gray|b
cat|is-big|a
hot|in-summer|a
dot|is-big|a
dot|is-round|b
dot|is-gray|a
cat|is-big|a
hot|in-summer|a
命令已尝试:
$awk 'BEGIN{FS="|"; OFS=","} {print $1,$3}' file1.csv | sort | uniq -c
得到的输出:
2 cat,a
4 dot,a
2 dot,b
2 hot,a
所需的输出:
2,cat,a
4,dot,a
2,dot,b
2,hot,a
尝试了其他命令:
$cat file1.csv |cut --output-delimiter="|" -d'|' -f1,3 | sort | uniq -c
答案 0 :(得分:1)
您需要在运行,
后将定界符更改为uniq -c
,因为它添加了第一列。
awk -F'|' '{print $1, $3}' file1.csv | sort | uniq -c | awk 'BEGIN{OFS=","} {$1=$1;print}'
但是,如果您使用的是sort | uniq -c
,则无需使用awk
,它可以自己进行计数。
awk 'BEGIN{FS="|";OFS=","} {a[$1 OFS $3]++} END{for(k in a) print a[k], k}' file1.csv