如何计算管道分隔文本文件中字段的唯一值数?

How to count number of unique values of a field in a pipe-delimited text file?

我有一个竖线分隔的 csv 文件(如果需要可以制作成 .txt 文件)。我想要第 4 列中所有唯一值的列表。我在终端中使用 Mac。谢谢

样本:

12345|1|2|Blue|54321
23456|1|2|Blue|23456
34567|1|2|Green|34567

我想要一个包含 'Blue'、'Green'

的列表

使用 macOS 的 built-in awk 像这样:

awk -F'|' '{print }' YourFile | sort | uniq

输出

Blue
Green

您的问题标题暗示您希望答案为 2,因为有两个唯一值,在这种情况下,也计算行数:

awk -F'|' '{print }' file | sort | uniq | wc -l
2