37

我需要把字符串"125959"变成"12:59:59".

显然,字符串是时间,所以正则表达式在这里不太好。

4

2 回答 2

76
time=125959
echo ${time:0:2}:${time:2:2}:${time:4:2}
于 2012-09-01T19:42:32.237 回答
22

我喜欢sed

time=125959
sed -e "s/\(..\)\(..\)\(..\)/\1:\2:\3/" <<< "$time"
  • 您可以通过替换.[[:digit:]]
  • 阅读<<<此处为字符串man bash(1)
于 2012-09-01T19:50:43.870 回答