如何将时间格式字符串(如“0M0.000s”)转换为秒
请告诉我计算或者plz告诉我如何才能在shell脚本中实现它
答案 0 :(得分:0)
ts="0M0.000s"
minutes=${ts%M*}
seconds=${ts#*M}
seconds=${seconds%s} # strip trailing "s"
total=$(bc <<< "$minutes*60 + $seconds")
答案 1 :(得分:0)
这将进行转换:
awk -F'[Ms]' '{print 60*$1+$2}'
例如:
$ echo '1M2.34s' | awk -F'[Ms]' '{print 60*$1+$2}'
62.34
-F'[Ms]'
这会告诉awk
将M
和s
视为字段分隔符。
print 60*$1+$2
这告诉awk
将第一个字段(分钟)乘以60并将其添加到第二个字段(秒)。这会产生以秒为单位的总时间。
假设我们在shell变量t
中有时间,并且我们希望将秒数放入名为seconds
的字符串变量中。使用:
t='1M2.34s'
seconds=$(echo "$t" | awk --posix -F'[Ms]' '{print 60*$1+$2}')