我最终在 Python 中为此编写了一个快速的小脚本,但我想知道是否有一个实用程序可以输入文本,它会在每一行前面加上一些文本——在我的具体情况下,是时间戳。理想情况下,使用将类似于:
cat somefile.txt | prepend-timestamp
(在你回答 sed 之前,我试过这个:
cat somefile.txt | sed "s/^/`date`/"
但这仅在执行 sed 时评估 date 命令一次,因此相同的时间戳错误地附加到每一行。)
可以尝试使用awk:
awk
<command> | awk '{ print strftime("%Y-%m-%d %H:%M:%S"), $0; fflush(); }'
您可能需要确保<command>产生行缓冲输出,即在每行之后刷新其输出流;添加的时间戳awk将是行尾出现在其输入管道上的时间。
<command>
如果 awk 显示错误,请尝试gawk改用。
gawk