计算单词的ocurrece并显示它

时间:2018-02-02 19:39:34

标签: linux bash

我有以下文件,fichero1.txt

Ana Rojo
Luis Verde
Victoria Azul
Luis Amarillo
Luis Verde

在文件中有重复的行。我必须得到名称" Luis"的所有组合(以及它们重复的次数)的列表。每种不同的颜色。在前面的示例中,命令或命令的输出应为:

我试过这段代码:

cat "fichero1.txt" | grep "Luis" | sort | uniq -cd | sort -r

但它没有正常工作,我只获得了

2 Luis Verde

正确的预期输出将是

2 Luis Verde
1 Luis Amarillo

2 个答案:

答案 0 :(得分:1)

使用uniq上的-d选项,您只需要重复的行,因此Luis Amarillo不是有效的结果。

grep Luis fichero1.txt | sort | uniq -c | sort -r

应该做的伎俩

答案 1 :(得分:0)

gawk

gawk '
BEGIN{PROCINFO["sorted_in"]="@val_num_desc"}
$1=="Luis"{a[$0]++}
END{for(i in a)print a[i] OFS i}
' fichero1.txt