我正在为stdout和stderr中的所有行添加时间戳。但是,我不想将它们中的任何一个重定向到文件。进程管理器(pm2)正在脚本中运行此命令,然后它将stdout和stderr记录到它们各自的文件中。我正在尝试修改流(不合并它们)并在pm2记录之前插入时间戳。我可以让他们两个都孤立地工作,但是遇到修改两者的问题。感谢您提供的任何帮助。
这是我的工作代码
python3.6 ./bot.py > >(gawk '{ print strftime("[%Y-%m-%d %H:%M:%S]"), $0 }') 2> >(gawk '{ print strftime("[%Y-%m-%d %H:%M:%S]"), $0 }')
答案 0 :(得分:1)
您需要将第二个gawk
命令的输出重定向回stderr:
python3.6 ./bot.py \
> >(gawk '{ print strftime("[%Y-%m-%d %H:%M:%S]"), $0 }') \
2> >(gawk '{ print strftime("[%Y-%m-%d %H:%M:%S]"), $0 }' >&2)
# this part here ^^^
否则,第二条gawk
命令将从python3.6
的stderr接收输入,但是将输出发送到与其他所有命令相同的stdout。