BASH:打印制表符分隔文件中唯一元素的总数

时间:2018-07-16 16:33:31

标签: bash

我的文件

01  01   A   Value1   Value2   Value3   Something   SomeMore
01  01   A   Value1   Value2   Value3   Something   SomeMore
01  01   A   Value1   Value2   Value4   Something   SomeMore  
01  01   A   Value1   Value2   Value5   Something   SomeMore
01  01   A   Value1   Value2   Value6   Something   SomeMore
01  01   A   Value1   Value2   Value6   Something   SomeMore
...[more1000 similar lines]

那我该如何提取制表符分隔文件的第六列并打印出唯一值的总数?

1 个答案:

答案 0 :(得分:1)

能否请您尝试以下操作,如果有帮助,请告诉我。

awk '!a[$6]++{count++};END{print count}'  Input_file

也将awk 'BEGIN{FS="\t"}用于TAB分隔的Input_file。

解决方案第二个: 在GNU awk中,数组长度。

awk '{!a[$6]++} END{print length(a)}' Input_file

两种解决方案的输出如下:

awk '!a[$6]++{count++};END{print count}' Input_file
4
***********
awk '{!a[$6]++} END{print length(a)}' Input_file
4