我有一个小脚本,它将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; } &
任何帮助实现这一目标将不胜感激。
答案 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 '...' &