Grep и подсчет совпадающих строк

У меня есть довольно сложный шаблон grep и awk, который я использую для получения отчетов из файлов журнала. Я отлично работаю и создаю красивую HTML-таблицу, которая отправляется по электронной почте людям, которым она нужна.

Я хотел бы добавить для каждого раздела (каждого grep) количество элементов в этом разделе.

grep -c не помогает, потому что он только возвращает счетчик, и я не хочу запускать grep дважды для каждого файла журнала для каждого раздела.

Все выполняется внутри сценария bash, который также генерирует HTML. Я могу пронумеровать строки с помощью CSS, но получить общий счет было бы здорово.

Команда grep / awk состоит из нескольких строк, и ее конец - это awk, генерирующий html:

 ...| awk '{print "<tr><td class=\"rightq\"> \
 <a href=\"mailto:admin@example.com?Subject=\ 
 "ENVIRON["DAY"]"%20"$1"&Body="ENVIRON["aBODY"]"\">" \
 $1"</a></td><td class=\"rightz\">"$2"</td><td>"$4"</td></tr>"}'
0
22.02.2017, 11:22
1 ответ

try

... | awk '{ print "..." ; c++} 
  END { printf "<tr><th>%d lines</th>...</tr>",c}' 

где

  • c подсчитает количество строк (я предполагаю, что greping происходит перед конвейером)
  • END - это специальный оператор awk, выполняемый .. в конце.
2
28.01.2020, 02:34

Теги

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