Вот мое решение awk (из системы Windows / XP с установленными MKS Tools в каталоге C: \ bin). Он предназначен для добавления текущей даты и времени в форме мм / дд чч: мм к началу каждой строки, извлекшей эту временную метку из системы при чтении каждой строки. Конечно, вы можете использовать шаблон BEGIN, чтобы получить временную метку один раз и добавить эту временную метку к каждой записи (все то же самое). Я сделал это, чтобы пометить файл журнала, который был сгенерирован, на стандартный вывод временной меткой во время создания сообщения журнала.
/"pattern"/ "C\:\\\\bin\\\\date '+%m/%d %R'" | getline timestamp;
print timestamp, $0;
где «pattern» - это строка или регулярное выражение (без кавычек) для сопоставления во входной строке, и необязательно, если вы хотите сопоставить все входные строки.
Это должно работать и в системах Linux / UNIX, просто избавьтесь от C \: \\ bin \\, оставив строку
"date '+%m/%d %R'" | getline timestamp;
Это, конечно, предполагает, что команда date возвращает вас к стандартной команде Linux / UNIX date display / set без конкретной информации о пути (то есть переменная PATH вашей среды правильно настроена).
cat somefile.txt
немного "вводит в заблуждение"? Я ожидаю, что это произойдет «сразу» и будет иметь одну временную метку. Разве это не будет лучшей тестовой программой(echo a; sleep 1; echo b; sleep 3; echo c; sleep 2)
?