grep :аннотировать номер вхождения

Сверхтонкий — еще один вариант.

Пример использования:

hyperfine --warmup 3 'my_command'

См. связанный вопрос .

2
30.11.2021, 23:59
4 ответа

Если вы хотите сделать что-то большее, чем просто сопоставление с образцом, и выполнить дополнительное форматирование с номерами строк и количеством совпадений, лучше использовать Awk, чем grep

awk '/PktType0 Done/{ print ++count, NR, $0 }' file
5
01.12.2021, 04:49

Не сравнимо с решением awk, но вот альтернатива. Учитывая немного другую выборку:

PktType0 Done
PktType1 Header
PktType1 Pay
PktType0 Done
PktType1 Done
PktType0 Header
PktType0 Pay
PktType0 Done

Команды:

$ paste <(awk '/Type0 Done/ { print ++c }' file) <(grep -n 'Type0 Done' file) | tr ':' ' ' | column -t
1  1  PktType0  Done
2  4  PktType0  Done
3  8  PktType0  Done
0
01.12.2021, 11:04

I was wondering if there's a tool I can pipe this to that will do the same.

Да:nl

<log.txt grep -n 'PktType0 Done' | nl
1
01.12.2021, 17:11
grep -n conf file |
  sed -Ee 's/^([[:digit:]]*):/\1 /' |
  cat -n

Шаг sedсвязан с тем, что grep -nставит двоеточие между номером строки и текстом, который не был указан в желаемом выводе.

0
02.12.2021, 16:27

Теги

Похожие вопросы