напечатать дату строки mail.log

У меня есть строка mail.log и с помощью sed и pipe я могу извлечь тему, отправителя и получателя почты,

echo "Jul 15 09:04:38 mail postfix/cleanup[36034]: 4A4E5600A5DE0: info: header Subject: The tittle of the message from localhost[127.0.0.1]; from=<sender01@mydomain> to=<recipient01@mydomain> proto=ESMTP helo=<mail.mydomain>" | sed -e 's/^.*Subject: //' -e 's/\]//' -e 's/from localhost//' -e 's/^.\];//' |sed -e 's/\[127.0.0.1; //' -e 's/proto=ESMTP helo=<mail.mydomain>//' 

У меня есть выход

 The tittle of the message from=<sender01@mydomain> to=<recipient01@mydomain> 

мой желаемый результат

 Jul 15 09:04:38 The tittle of the message from=<sender01@mydomain> to=<recipient01@mydomain> 

Как извлечь дату и добавить ее к выходу?

  • Как изменить столбец в строке в текстовом файле с разделителями табуляции, если он дублируется
  • Перепишите команду find, которая использует sed -i для AIX
  • sed one-liner для удаления словесных пространств
  • Выделите n-й столбец вывода ps
  • shell переименовывать имена файлов с непечатаемыми символами
  • Как извлечь строку между двумя шаблонами с помощью sed в Linux, а второй шаблон повторяет больше строк в файле
  • Регулярные команды и команды с командой sed
  • Сопоставление двух разных линий, расположенных по крайней мере на N прямых друг от друга
  • One Solution collect form web for “напечатать дату строки mail.log”

    Ужасно, но положил это в начале инструкции sed :

      -e 's/^\([[:alpha:]]+ [[:digit:]]+ [[:digit:]]+:[[:digit:]]+:[[:digit:]]+\).*Subject:\(.*\)/\1\2/' 

    Или, если вы всегда знаете, что «почтовый постфикс» будет в тексте в этой позиции, вы можете просто использовать:

      -e 's/^\(.*\) mail postfix.*Subject:\(.*\)/\1\2/' 

    И другие варианты возможны. Ключ состоит в том, чтобы зафиксировать дату, пропустить части, которые вам не нужны, и снова захватить оставшуюся часть, которую вам все еще нужно обработать. Чтобы захватить объемный звук с помощью \( и \) и напечатать то, что вы захватили, используйте \n где n – позиция конкретного захвата (сначала 1, вторая – 2 и т. Д.).

    И теперь, когда вы это знаете, вы, вероятно, можете выяснить, как устранить все отдельные директивы (-e), использовать несколько групп захвата и передать их одному выражению sed .

    Interesting Posts

    GNU параллельна чрезмерно медленной

    Странная проблема обновления с Chromium на Gentoo

    Редактирование и перекомпиляция отдельной программы

    Обмен каталогами в дереве, из / dir1 / dir2 / dir3 / dir4 to / dir1 / dir2 / dir4 / dir3

    Правильный способ реализации SSL на локальном хосте

    чистые сценарии пытаются восстановить старый физический удаленный сетевой интерфейс

    Ошибка сегментации в системном каталоге `/ tmp`

    На дисплее X11 отображается режим масштабирования. Как выйти?

    Как проверить, принадлежат ли две директории или файлы одной и той же файловой системе

    Слияние файлов – одно и то же имя, другое расширение

    Какой файл мне нужно изменить, чтобы сделать статический DNS-сервер в CentOS?

    Уничтожение запущенного процесса на машине Ubuntu удаленно с Windows-машины, находящейся в локальной сети

    Вставка переменной Bash – Perl Script

    Linux Создать пользователя со специальными параметрами входа в систему

    Создание точечного скрипта

    Linux и Unix - лучшая ОС в мире.