我有一个名为 的 CSV 文件test.csv。它看起来像这样:
1,Color
1,Width
2,Color
2,Height
Run Code Online (Sandbox Code Playgroud)
我想找出第一列中有多少个不同的值。在这种情况下,shell 脚本应该返回2。
我尝试运行sort -u -t, -k2,2 test.csv,我在另一个问题上看到了它,但它打印出的信息比我需要的多得多。
如何编写一个 shell 脚本来打印 的第一列中不同值的数量test.csv?
使用 awk 你可以这样做:
awk -F, '!seen[$1]++{c++} END{print c}' file
2
Run Code Online (Sandbox Code Playgroud)
这个 awk 命令使用 key $1,并将它们存储在一个数组中。当第一次填充键时,其值会增加到 1。每次我们获得一个唯一的密钥时,我们都会增加计数c并最后打印它。