每次处理从tail -f传递的输入行时,如何使awk执行(即重新执行)系统命令

我正在尝试将当前时间放在从不断增长的文本文件的每一行中拉出的几列之前,并打印到屏幕上。

tail -f dumpfile.txt|awk '{ "date +%T"|getline curtime;print curtime, $2, $7 }'

该文件的示例输入行为:

N 7056 65433 flags 0dbc a000 OK 0

Above command prints each line from tail, however it executes date just once, time that the command line is launched:

Desired             Actual
13:10:05 7050 OK    13:10:04 7050 OK
13:10:05 7051 OK    13:10:04 7051 OK
13:10:06 7052 OK    13:10:04 7052 OK
13:10:06 7053 OK    13:10:04 7053 OK
13:10:07 7054 OK    13:10:04 7054 OK
13:10:07 7055 OK    13:10:04 7055 OK
13:10:08 7056 OK    13:10:04 7056 OK

我该如何重写它,以便每次有新行出现时都执行date命令?

谢谢。

评论