С помощью GNU date
вы можете запустить date
один раз и получить ввод со стандартного ввода. Использование функции совместной обработки gawk для обработки всех дат по одному экземпляру awk
и date
:
% awk -v cmd='stdbuf -oL date +%s -f-' -F': ' 'BEGIN{OFS=FS} {print $2 |& cmd; cmd |& getline $2} 1' foo
1: 1562048059: %ASA-6-106015:
2: 1562048089: %ASA-6-106015:
Обратите внимание, что выводdate
должен быть небуферизованным (, следовательно, stdbuf -oL
), иначе сопроцесс зависнет.