grep суммировать строки по строкам - PullRequest
0 голосов
/ 26 мая 2019

У меня есть grep'-строка из curl, и я хочу обобщить строки по ее содержанию.

е. г. ввод

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 голосов
/ 31 мая 2019

Вы можете использовать

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

Примечание: это также даст счетчик пустых строк.Если вы хотите избавиться от них, используйте:

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