Я запускаю следующую команду, чтобы отсканировать файл журнала и распечатать строки, которые содержат указанные мной шаблоны.В конце распечатанных строк эта строка кода также предоставляет количество строк (которые имеют шаблоны) в конце вывода.
awk 'BEGIN{count=0} /error/ && /database/ {print ; count++ } END { print count }' ${LOGFILE}
Содержимое файла журнала имеет содержимое, подобноеследующее:
Sep 25 20:18:21 accountsd[377]: notify name LTNCY=200 "SYDRemotePreferencesSourceDidChangeExternally" has been registered 120 times - this may be a leak
Sep 25 20:18:21 accountsd[377]: notify name LTNCY=200 "com.apple.syncdefaultsd.daemon.wake" has been registered 120 times - this may be a leak
У меня проблемы с тем, что у меня возникла новая ситуация, которую я должен принять во внимание.
- Мне также нужно убедиться, что строки содержат шаблон
LTNCY=
- Получить количество строк, содержащих шаблон
LTNCY
- ТогдаМне нужно получить все значения каждого
LTNCY
из каждой строки журнала - Сложить все значения LTNCY из шага # 3 и разделить их на шаг # 2
Я получилнасколько это:
awk 'BEGIN{count=0} /notify.*LTNCY=/ && /may be a leak/ {print ; count++ } END { print count }' ${LOGFILE}
Я знаю, что нужно будет использовать вариант следующей команды:
awk '{sum+=$1} END {print sum}'
Но у меня возникают проблемы при объединении всего в ОДНУ команду awk.