我有一个包含人口、年份和县的列表,我需要删除该列表,然后找到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但这不会删除第三个列表,也不会按字母顺序对其进行排序。我做错了什么?
发布于 2014-02-06 02:00:31
您可以添加分隔符,在本例中为逗号:
cut -f 3 -d, list.txt | sort | uniq然后,-c指定字符位置,而不是用-f指定的字段。
要删除前面的空格,您可以通过管道将其全部通过,例如awk '{print $1}',即
cut -f 3 -d, list.txt | awk '{print $1}' | sort | uniq编辑
啊啊。如果你尝试cut出第三个字段,在管道之后只剩下一个字段,所以对第三个字段排序不起作用,这就是为什么我在我的例子中省略了它。您得到1个字段,您只需对其进行排序并应用uniq即可。
发布于 2014-02-06 02:04:53
您可以使用awk提取第三个字段(空格分隔),然后执行排序/uniq操作。
awk '{print $3}' list.txt |sort |uniq -chttps://stackoverflow.com/questions/21584727
复制相似问题