我有一个包含多个列的文件,我想根据第一列唯一的第二列值来计算一列的出现次数
前任:

column 10            column 15
orange               New York
green                New York
blue                 New York
gold                 New York
orange               Amsterdam
blue                 New York
green                New York
orange               Sweden
blue                 Tokyo
gold                 New York

我对使用awk之类的命令还比较陌生,希望获得更多实用知识。
我试过一些不同的
awk '{A[$10 OFS $15]++} END {for (k in A) print k, A[k]}' myfile

但是,由于不太理解代码,输出结果不是我所期望的。
我期望输出
orange     3
blue       2
green      1
gold       1

最佳答案

带着GNU awk。我认为tab是字段分隔符。

awk '{count[$10 FS $15]++}END{for(j in count) print j}' FS='\t' file | cut -d $'\t' -f 1 | sort | uniq -c | sort -nr

输出:
3橙色
2蓝色
1绿色
1黄金
我想应该更优雅些。

09-10 09:52
查看更多