【发布时间】:2016-07-22 18:59:55
【问题描述】:
我有这个持续时间的文件。有些人有几天,但主要是 hh:mm 形式。整个形式为dd+hh:mm 我试图将“tr -s '+:' ':'”它们转换为 dd:hh:mm 形式,然后 split($1,tm,":") 将它们计算为秒。 但是,我面临的问题是,在此操作之后,带有 hh:mm 的表单将在 tm[1] 中具有 hh,但如果它的 dd:hh:mm 则 tm[1] 将是 dd。 有没有办法将 hh:mm 形式的 hh 放入 tm[2] 并将 tm[1] 为 0 请?
4+11:26
10+06:54
20:27
是输入
我想要的输出是(以 tm[1], tm[2], tm[3] 的形式):
4 11 26
10 06 54
0 20 27
【问题讨论】:
-
请显示您有什么输入和您期望的输出。
-
刚刚添加。谢谢你提醒我!
-
我会首先尝试通过插入缺失的日期来规范化输入,然后在 sed 中继续:
sed '/+/! s/^/0+/; s/[+:]/ /g;' yourfile -
确实有效!非常感谢!
标签: linux bash shell awk command-line