如何计算文件中的列中有多少个不同的单词

如何计算文件中的列中有多少个不同的单词

我有一个 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

相关内容