【问题标题】:Getting word count with Grep使用 Grep 获取字数
【发布时间】:2013-04-12 22:33:47
【问题描述】:

我一直在用

grep -o string file | wc -l

获取字数,但我有一个格式的文件

help
help
help
how
how
luke
mark

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

而不是多次运行上一个命令

【问题讨论】:

    标签: shell unix grep uniq


    【解决方案1】:

    你可以使用

    sort input.txt | uniq -c
    

    哪个会输出

       3 help
       2 how
       1 luke
       1 mark
    

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

    【讨论】:

    • 现在假设输出最终为:5,8,3,12,7。有没有办法按降序排序?
    • 非常感谢您的宝贵时间
    【解决方案2】:

    单进程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
    

    【讨论】:

      猜你喜欢
      • 2021-02-03
      • 2017-04-08
      • 1970-01-01
      • 2011-03-13
      • 1970-01-01
      • 2022-01-25
      • 2019-06-28
      • 2021-04-26
      • 2021-09-29
      相关资源
      最近更新 更多