Объединять каждые две строки после обработки каждой из них внешней командой оболочки

Эти два термина не приравниваются в RFC или другом стандарте, но если вы прочитаете дальше, вы заметите, что поиск двух терминов вместе обнаруживает несколько статей, которые приравнять их, а также указать на широко используемый другой формат, maildir .

RFC 4155 (написанный в сентябре 2005 г., который является недавним ) говорит

Формат базы данных mbox не задокументирован в официальной спецификации , но вместо этого существует как широко известный выходной формат, который задокументирован неофициально или документально подтвержден только для конкретной платформы или инструмента.

Дополнительная литература:

3
13.03.2019, 06:01
2 ответа

С GNU Awk(gawk)вы можете использовать встроенный -вstrftime:

gawk '
    NR%2 {ts = strftime("%F %T",substr($0,2)); next} 
         {printf("<tr> <td>%s</td> <td><pre>%s</pre></td> </tr>\n",ts,$0)}
' input_file 
<tr> <td>2019-03-11 18:12:15</td> <td><pre>ls</pre></td> </tr>
<tr> <td>2019-03-11 18:12:39</td> <td><pre>date</pre></td> </tr>
<tr> <td>2019-03-11 18:13:00</td> <td><pre>cat.bash_history </pre></td> </tr>
4
27.01.2020, 21:13

Осторожно, в следующем коде отсутствует обработка ошибки -. Пояснения встраиваются в виде встроенных комментариев

awk '{

    #strip leading "#", run through date and read into $0
    gsub(/^#/, ""); "date -d @"$0" \"+%F %T\"" | getline; 
    #wrap with table tags and print
    printf "<tr> <td>%s</td>", $0;
    #read the subsequent "non-date" line
    getline;
    #wrap with table tags and print
    printf " <td><pre>%s</pre></td> </tr>\n", $0

}' file
2
27.01.2020, 21:13

Теги

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