Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Shell 使用Grep获取单词计数_Shell_Unix_Grep_Uniq - Fatal编程技术网

Shell 使用Grep获取单词计数

Shell 使用Grep获取单词计数,shell,unix,grep,uniq,Shell,Unix,Grep,Uniq,我一直在使用 grep -o string file | wc -l 获取字数,但我有一个文件的格式 help help help how how luke mark 我想知道是否有一个命令会返回:3,2,1,1 您可以使用 sort input.txt | uniq -c 哪个会输出 3 help 2 how 1 luke 1 mark 您可以从中继续处理输出。如果您已经知道相同的条目在一个连续的行块中,您当然可以跳过排序,直接使用uniq,这也将保留顺序。您可

我一直在使用

grep -o string file | wc -l
获取字数,但我有一个文件的格式

help
help
help
how
how
luke
mark
我想知道是否有一个命令会返回:3,2,1,1

您可以使用

sort input.txt | uniq -c
哪个会输出

   3 help
   2 how
   1 luke
   1 mark
您可以从中继续处理输出。如果您已经知道相同的条目在一个连续的行块中,您当然可以跳过
排序
,直接使用
uniq
,这也将保留顺序。

您可以使用

sort input.txt | uniq -c
哪个会输出

   3 help
   2 how
   1 luke
   1 mark

您可以从中继续处理输出。如果您已经知道相同的条目位于连续的行块中,您当然可以跳过
排序
,直接使用
uniq
,这也将保留顺序。

单进程awk方式

awk '{a[$0]++}END{for(x in a)print x" : "a[x]}' file

kent$  echo "help
help
help
how
how
luke
mark"|awk '{a[$0]++}END{for(x in a)print x" : "a[x]}'
luke : 1
help : 3
how : 2
mark : 1

单进程awk方式

awk '{a[$0]++}END{for(x in a)print x" : "a[x]}' file

kent$  echo "help
help
help
how
how
luke
mark"|awk '{a[$0]++}END{for(x in a)print x" : "a[x]}'
luke : 1
help : 3
how : 2
mark : 1

现在让我们假设输出结果是:5,8,3,12,7。有没有办法按降序排序?非常感谢您的时间现在让我们假设输出结果是:5,8,3,12,7。有没有办法按降序排序?非常感谢您的时间