2013-01-04 82 views
2

我有一個小腳本,它將ttyUSB的輸出捕獲到一個文件,我想爲每行預先添加一個時間戳。在命令行中這樣做我想要的一切:將時間戳添加到從shell腳本輸出的貓

$ 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

擺脫「>」。然後擺脫UUOC。 –

+0

你可能會發現我的'timer'命令很有用:https://github.com/Keith-S-Thompson/kst-time-utils –

回答

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 & 
+0

很高興推動你;-)祝你好運。 – shellter

+0

真棒謝謝你,我有更多的閱讀要做。跟進問題。現在,如果我在沒有貓的情況下運行該文件,如果我想在一天結束時滾動文件,該如何停止它?目前我正在尋找cat pids st – Argus

1

你需要把> /家庭/ PI/daily_logs/ttyUSB0管道之後。像這樣:

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

+0

這有效,現在我明白我做錯了什麼。 – Argus

0

無用貓的使用阻礙瞭解決方案。爲了儘量減少所需的變化,你也可以這樣做:

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