Я должен вытянуть почтовый размер для каждой электронной почты в журнале sendmail, затем составить их с общим размером и общим количеством электронных писем

Размер прост найти после размера =, я могу найти размер и поместить его в файл, но удаление всего кроме чисел и затем подведения итогов его с общими количествами все в одном файле просто не прибывают ко мне.

прямо сейчас я использую это;


grep 'size=' /var/log/maillog-2019* | awk ' { print $8 }' > output.txt

0
задан 9 October 2019 в 21:25

1 ответ

У меня будет попытка с awk

$ awk -F'[[:blank:],=]' '/size=/ { sum += $12; total += 1} END { print "Sum: " sum " Total:" total}' /var/log/mail.log
  • -F'[[:blank:],=]' Говорит awk обрабатывать весь вид пробела, запятой и равный как разделитель полей
  • /size=/ Выберите строки, который содержит size=
  • { sum += $12; total += 1} Выберите 12-е поле и добавьте его к sum одновременно мы увеличиваем total из одного
  • END { print "Sum: " sum " Total:" total} В печати конца Sum: $sum Total:$total

Например:

$ awk -F'[[:blank:],=]' '/size=/ { sum += $12; total += 1} END { print "Sum: " sum " Total:" total}' /var/log/mail.log
Sum: 1491646 Total:800

Я не знаю, будет ли это отлично работать на Вас, но это должно дать Вам довольно хорошую идею о том, как сделать это!

0
ответ дан 22 December 2019 в 00:22

Другие вопросы по тегам:

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