我有一个 CSV 文件。
"AGNOLI Valerio","ITA","AST"
在此示例中,第二列显示“ITA”。我预计此文件中列出了大约 100 个不同的国籍。我想确切地知道有多少个不同的国籍。
答案1
cut -d ',' -f 2 filename | sort -u | wc -l
基本上,我在命令中指定,
为分隔符,并使用标志cut
提取第二列中的值。-f
现在,我使用标记对它们进行排序sort
,并且该-u
标志使命令仅列出唯一值。最后,我有wc -l
命令获取第二列中唯一国家/地区的数量。
测试
cat filename
jill,us,123
jack,us,345
jill,en,234
mark,en,432
kate,us,354
kane,ru,435
现在,发出命令后,我得到的输出为:
cut -d ',' -f 2 filename | sort -u | wc -l
3
答案2
您可以使用awk
它将更有效地完成并为您进行计数,而不是调用不同的二进制文件并分叉大量进程。
awk -F, '{a[$2]++} END{ for (i in a) print i, a[i]}' filename.csv