sfa*_*tor 35 linux bash command-line
我有一个文本文件,其中包含大量数据,并以制表符分隔.我想查看数据,以便我可以在列中看到唯一值.例如,
Red Ball 1 Sold
Blue Bat 5 OnSale
...............
Run Code Online (Sandbox Code Playgroud)
所以,它就像第一列有颜色一样,所以我想知道该列中有多少不同的唯一值,我希望能够为每一列做到这一点.
我需要在Linux命令行中执行此操作,因此可能使用一些bash脚本,sed,awk或其他东西.
附录:感谢大家的帮助,我可以再问一件事吗?如果我想要计算这些独特的价值怎么办?
我想我没有清楚地说明第二部分.我想要做的是计算这些唯一值的"每个",不知道有多少独特的值.例如,在第一列中我想知道有多少红色,蓝色,绿色等彩色物体.
cod*_*ict 74
您可以使用的cut
,sort
并uniq
命令如下:
cat input_file | cut -f 1 | sort | uniq
Run Code Online (Sandbox Code Playgroud)
在字段1中获取唯一值,将1替换为2将在字段2中为您提供唯一值.
避免UUOC :)
cut -f 1 input_file | sort | uniq
Run Code Online (Sandbox Code Playgroud)
编辑:
要计算唯一出现次数,您可以使用wc
链中的命令:
cut -f 1 input_file | sort | uniq | wc -l
Run Code Online (Sandbox Code Playgroud)
您可以使用awk,sort和uniq来执行此操作,例如列出第一列中的所有唯一值
awk < test.txt '{print $1}' | sort | uniq
Run Code Online (Sandbox Code Playgroud)
如在其他地方发布的那样,如果要计算某些内容的实例数,可以将唯一列表输入到 wc -l
小智 8
cat test.csv | awk '{ a[$1]++ } END { for (n in a) print n, a[n] } '
Run Code Online (Sandbox Code Playgroud)