2013-02-22 73 views
0

我有一個數據平面文件的格式如下有沒有一個unix程序將各種HH:MM:SS格式轉換爲秒?

(1+01:01) 
(06:18) 
(00:02) 

我可以使用awk來總結數據,如果它在幾秒鐘,像這樣

16 
32 
64 

cat file | awk '{SUM+=$1} END {print SUM}' 

形式是否有辦法我可以將存儲在平面文件中的值轉換爲秒?

+0

你可以提供'date'命令來將'1 + 01:01'轉換爲秒? – user784637 2013-02-22 07:29:42

+1

'gawk'具有[日期/時間函數](http://www.gnu.org/software/gawk/manual/html_node/Time-Functions.html),您可能會感興趣。如果你只是想計算秒數,爲什麼不把它乘以。您的預期產出究竟是什麼?什麼是'1 + 01:01'? – Steve 2013-02-22 07:30:06

+0

我可以乘以它,我只是想知道是否有任何內置的工具來做到這一點=) – user784637 2013-02-22 07:31:07

回答

2

GNU日期是相當不錯的解析日期,但1+01:01不支持。如果讓sed稍微修改輸入,並且假設它意味着1 hour + 1 hour + 1 minute,您仍然可以使用它。

這裏的是你可以解析與GNU的grep,sed和日期文件的一種方法:

<infile grep -o '[^()]*' | 
sed 's/^([0-9]+)[+-]/\1 hour /; 
    s/^/date -d "/; 
    s/$/ 1970-01-01 UTC" +%s/e' 

輸出:

7260 
22680 
120 

e標誌的離開,看看有什麼命令SED正在執行。

相關問題