我有一个包含以下格式数据的平面文件
(1+01:01)
(06:18)
(00:02)
我可以使用awk来总结数据,如果它是像这样的数秒
16
32
64
cat file | awk '{SUM+=$1} END {print SUM}'
有没有办法可以将存储在平面文件中的值转换为秒?
答案 0 :(得分:2)
GNU日期非常适合解析日期,但不支持1+01:01
。如果你让sed稍微修改输入,并假设它意味着1 hour + 1 hour + 1 minute
,你仍然可以使用它。
以下是使用GNU grep,sed和date解析文件的一种方法:
<infile grep -o '[^()]*' |
sed 's/^([0-9]+)[+-]/\1 hour /;
s/^/date -d "/;
s/$/ 1970-01-01 UTC" +%s/e'
输出:
7260
22680
120
保留e
标志以查看sed正在执行的命令。
答案 1 :(得分:1)
为什么不使用awk
呢?看看这个stackoverflow答案:Simple way to convert HH:MM:SS (hours:minutes:seconds.split seconds) to seconds