You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用sort、cut、wc、uniq统计指定列的不同值数量?

解决方案:用sort、cut、wc、uniq统计第二列不同值数量

嗨,你已经找对思路啦,只是差在uniq的参数用法上!这里有两种符合你要求的实现方式,都能得到预期的结果5:

方法一:直接提取目标列后处理(更简洁)

这种方式不需要保留整行,直接针对第二列操作,步骤更短:

cut -d ' ' -f2 list.txt | sort -n | uniq | wc -l

分步解释:

  • cut -d ' ' -f2 list.txt:以空格为分隔符,提取文件中所有行的第二列(也就是数字部分)
  • sort -n:对提取出的数字进行数值排序(uniq只能识别相邻的重复项,所以必须先排序)
  • uniq:去除相邻的重复数字
  • wc -l:统计去重后的行数,也就是第二列不同值的数量

方法二:贴合你的原始思路(整行处理后提取)

如果你想保留先排序整行的步骤,可以用uniq的-f参数跳过第一个字段(名字列),实现按第二列去重:

sort -k2n list.txt | uniq -f 1 | cut -d ' ' -f2 | wc -l

分步解释:

  • sort -k2n list.txt:按第二列的数值升序排序整行,让相同数字的行集中在一起
  • uniq -f 1:-f 1表示跳过前1个字段(用空格分隔的名字),只比较从第二个字段开始的内容,这样相同数字的行只会保留第一行
  • cut -d ' ' -f2:提取去重后的第二列数字
  • wc -l:统计最终的行数,得到不同值的数量

两种方法都能完美解决你的问题,第一种因为直接针对目标列操作,会更高效哦~

内容的提问来源于stack exchange,提问作者Ulysses

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 03:14:05