加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

使用Linux cut,sort和uniq

发布时间:2020-12-13 23:57:15 所属栏目:Linux 来源:网络整理
导读:我有一个包含人口,年份和县的列表,我需要删除列表,然后找到uniq县的数量. 列表开头是这样的: #Population,Year,County3900,1969,Beaver3798,1970,Beaver3830,1971,Beaver3864,1972,Beaver3993,1973,Beaver3976,1974,Beaver4064,1975,Beaver 这个清单还有更
我有一个包含人口,年份和县的列表,我需要删除列表,然后找到uniq县的数量.

列表开头是这样的:

#Population,Year,County
3900,1969,Beaver
3798,1970,Beaver
3830,1971,Beaver
3864,1972,Beaver
3993,1973,Beaver
3976,1974,Beaver
4064,1975,Beaver

这个清单还有更多的县,还有更多的县.我必须删除县列,对其进行排序,然后输出uniq县的数量.我试过这个命令:

cut -c3- list.txt | sort -k3 | uniq -c

但这不会削减第三个列表,也不会按字母顺序排序.我究竟做错了什么?

解决方法

您可以添加分隔符,在您的情况下是逗号:

cut -f 3 -d,list.txt | sort | uniq

然后,-c指定字符位置,而不是字段,使用-f指定.

为了去除前面的空间,你可以通过它来管道,例如awk'{print $1}’,即

cut -f 3 -d,list.txt | awk '{print $1}' | sort | uniq

[编辑]

Aaaaand.如果你试图切出第三个字段,你只剩下管道后面的一个字段,所以在第三个字段上排序将不起作用,这就是我在我的例子中省略它的原因.你得到1个字段,你只需对它进行排序并应用uniq.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读