grep按字符串汇总行

时间:2019-05-26 16:36:32

标签: sed grep

我从curl中得到了一个grep's字符串,我想根据其内容来总结其中的行。

e。 G。 输入

SomethingA v2.3
SomethingA v2.4

SomethingElse v1.1
SomethingElse v1.2

输出

SomethingA 2
SomethingElse 1

输出中的数字不是必须的,但是如果易于实现,将非常好。作为前导空格的“ v”是数字的固定前缀,这些数字不必包含点。

我尝试了echo "$str" | grep -Po '(.*(?<=))v[0-9]',但是它仍然包含“ v1” ..而且我不知道如何通过多次匹配来减少前导字符串。

1 个答案:

答案 0 :(得分:0)

您可以使用

$ awk '{print $1}' filename  | sort | uniq -c | awk '{print $2,$1}'

注意:这还将给出空白行的计数。如果要摆脱这些,请使用:

$ grep -v '^$'  filename |  awk '{print $1}' | sort | uniq -c | awk '{print $2,$1}'