У меня есть довольно сложный шаблон 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>"}'
try
... | awk '{ print "..." ; c++}
END { printf "<tr><th>%d lines</th>...</tr>",c}'
где
c
подсчитает количество строк (я предполагаю, что greping происходит перед конвейером) END
- это специальный оператор awk, выполняемый .. в конце.