Ось моє рішення awk (із системи Windows / XP зі встановленими інструментами MKS у каталозі C: \ bin). Він призначений для додавання поточної дати та часу у формі mm / dd hh: mm до початку кожного рядка, який отримав цю часову позначку з системи під час зчитування кожного рядка. Можна, звичайно, використовувати шаблон BEGIN, щоб отримати часову позначку один раз і додати цю часову позначку до кожного запису (все те саме). Я зробив це, щоб позначити файл журналу, який створювався для stdout із позначкою часу в момент створення повідомлення журналу.
/"pattern"/ "C\:\\\\bin\\\\date '+%m/%d %R'" | getline timestamp;
print timestamp, $0;
де "pattern" - це рядок або регулярний вираз (без лапок), який повинен відповідати у рядку введення, і необов'язковий, якщо ви хочете відповідати всім рядкам введення.
Це має працювати і в системах Linux / UNIX, просто позбудьтеся C \: \\ bin \\, залишивши рядок
"date '+%m/%d %R'" | getline timestamp;
Це, звичайно, передбачає, що команда "дата" перенесе вас до стандартної команди відображення / встановлення дати Linux / UNIX без конкретної інформації про шлях (тобто, ваша змінна PATH середовища налаштована правильно).
cat somefile.txt
трохи "вводить в оману"? Я очікував, що це станеться "відразу" і матиме єдину часову позначку. Хіба це не буде кращою програмою тестування(echo a; sleep 1; echo b; sleep 3; echo c; sleep 2)
:?