如何计算同一正则表达式的每个不同匹配项的出现次数

时间:2019-06-18 13:42:44

标签: regex linux bash shell grep

我有一个文本文件,我想使用grep计数一次正则表达式匹配项的出现次数

我有一个文本文件,例如:

# file.txt

72=JABBA123
72=JABBA123
72=THE5555
72=THE5555
72=THE5555
72=HUTT66

我想使用grep来计数:

grep -c -Op "72=(\w+\d+)" file.txt

结果应如下:

JABBA123 2
THE5555  3
HUTT66   1

1 个答案:

答案 0 :(得分:1)

使用GNU grep:

grep -Po "[[:alpha:]]+[[:digit:]]+" file | uniq -c

grep -Po '=\K.*' file | uniq -c
  

\K:删除\K前的匹配部分

输出:

      2 JABBA123
      3 THE5555
      1 HUTT66

可能必须在此处插入sort