首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Linux cut、sort和uniq

使用Linux cut、sort和uniq
EN

Stack Overflow用户
提问于 2014-02-06 01:53:47
回答 2查看 31.5K关注 0票数 9

我有一个包含人口、年份和县的列表,我需要删除该列表,然后找到uniq县的数量。

列表的开头是这样的:

代码语言:javascript
复制
#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县的数量。我尝试了这个命令:

代码语言:javascript
复制
 cut -c3- list.txt | sort -k3 | uniq -c

但这不会删除第三个列表,也不会按字母顺序对其进行排序。我做错了什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-02-06 02:00:31

您可以添加分隔符,在本例中为逗号:

代码语言:javascript
复制
cut -f 3 -d, list.txt | sort | uniq

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

要删除前面的空格,您可以通过管道将其全部通过,例如awk '{print $1}',即

代码语言:javascript
复制
cut -f 3 -d, list.txt | awk '{print $1}' | sort | uniq

编辑

啊啊。如果你尝试cut出第三个字段,在管道之后只剩下一个字段,所以对第三个字段排序不起作用,这就是为什么我在我的例子中省略了它。您得到1个字段,您只需对其进行排序并应用uniq即可。

票数 16
EN

Stack Overflow用户

发布于 2014-02-06 02:04:53

您可以使用awk提取第三个字段(空格分隔),然后执行排序/uniq操作。

代码语言:javascript
复制
awk '{print $3}' list.txt |sort |uniq -c
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21584727

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档