将时间戳添加到shell脚本的cat输出中

时间:2013-01-04 17:07:48

标签: linux shell awk cat

我有一个小脚本,它将ttyUSB的输出转换为我希望在每行前加一个时间戳的文件。从命令行,这可以完成我想要的一切:

$ cat /dev/ttyUSB0 /home/pi/daily_logs/ttyUSSB0 | awk '{ print strftime("%Y-%m-%d %H:%M:%S"), $0; }

我的问题是,当我将它添加到脚本时一切正常但是没有添加awk时间戳。我的脚本行如下所示:

cat < /dev/ttyUSB0 > /home/pi/daily_logs/ttyUSB0 | awk '{ print strftime("%Y-%m-%d %H:%M:%S"), $0; } &

任何帮助实现这一目标将不胜感激。

3 个答案:

答案 0 :(得分:6)

您需要将awk的输出重定向到文件,而不是cat。你拥有它的方式,awk什么都没有。实际上,you may not need cat at all

awk '{ print strftime("%Y-%m-%d %H:%M:%S"), $0; }' /dev/ttyUSB0 > /home/pi/daily_logs/ttyUSB0 &

答案 1 :(得分:1)

你需要把&gt;管道后面的/ home / pi / daily_logs / ttyUSB0。像这样:

cat < /dev/ttyUSB0 | awk '{ print strftime("%Y-%m-%d %H:%M:%S"), $0; }' > /home/pi/daily_logs/ttyUSB0

答案 2 :(得分:0)

无用的猫正在阻碍解决方案。要尽量减少所需的更改,您还可以执行以下操作:

< /dev/ttyUSB0 > /home/pi/daily_logs/ttyUSB0 awk '...' &