Bash 数一数清楚的单词

Bash 数一数清楚的单词,bash,awk,Bash,Awk,我有一个输入文件,如下所示: com.a.b com.c.d com.a.b com.e.f com.e.f com.e.f 我希望输出结果如下: com.a.b 2 com.c.d 1 com.e.f 3 如果您不介意给定输出中的细微变化,那么传统方法是使用sort和uniq: 否则,请使用具有关联数组的脚本语言,如awk: 要排序以便订购的管道: $ awk '{a[$0]++}END{for(k in a)print k,a[k]}' file | sort com.a.b 2 com

我有一个输入文件,如下所示:

com.a.b
com.c.d
com.a.b
com.e.f
com.e.f
com.e.f
我希望输出结果如下:

com.a.b 2
com.c.d 1
com.e.f 3

如果您不介意给定输出中的细微变化,那么传统方法是使用sort和uniq:

否则,请使用具有关联数组的脚本语言,如awk:

要排序以便订购的管道:

$ awk '{a[$0]++}END{for(k in a)print k,a[k]}' file | sort
com.a.b 2
com.c.d 1
com.e.f 3

如果您不介意给定输出中的细微变化,那么传统方法是使用sort和uniq:

否则,请使用具有关联数组的脚本语言,如awk:

要排序以便订购的管道:

$ awk '{a[$0]++}END{for(k in a)print k,a[k]}' file | sort
com.a.b 2
com.c.d 1
com.e.f 3

排序文件| uniq-c | awk'{print$2,$1}'也提供了正确的输出。@Swiss给出的示例输入也是一个很好的解决方案,但它不是一个很好的通用解决方案,因为每行的字段数需要固定。排序文件| uniq-c | awk'{print$2,$1}'还提供了正确的输出。@Swiss给出的示例输入也是一个很好的解决方案,但它不是一个很好的通用解决方案,因为每行的字段数需要固定。
$ awk '{a[$0]++}END{for(k in a)print k,a[k]}' file | sort
com.a.b 2
com.c.d 1
com.e.f 3