小编典典

是否有 Unix 实用程序可以将时间戳添加到标准输入?

all

我最终在 Python
中为此编写了一个快速的小脚本,但我想知道是否有一个实用程序可以输入文本,它会在每一行前面加上一些文本——在我的具体情况下,是时间戳。理想情况下,使用将类似于:

cat somefile.txt | prepend-timestamp

(在你回答 sed 之前,我试过这个:

cat somefile.txt | sed "s/^/`date`/"

但这仅在执行 sed 时评估 date 命令一次,因此相同的时间戳错误地附加到每一行。)


阅读 59

收藏
2022-08-07

共1个答案

小编典典

可以尝试使用awk

<command> | awk '{ print strftime("%Y-%m-%d %H:%M:%S"), $0; fflush(); }'

您可能需要确保<command>产生行缓冲输出,即在每行之后刷新其输出流;添加的时间戳awk将是行尾出现在其输入管道上的时间。

如果 awk 显示错误,请尝试gawk改用。

2022-08-07