在bash中将字符插入字符串?

And*_*ald 26 linux bash

我需要将字符串"125959"转换为"12:59:59".

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

Ans*_*ers 53

time=125959
echo ${time:0:2}:${time:2:2}:${time:4:2}
Run Code Online (Sandbox Code Playgroud)

  • 该死的答案。有关更多信息,请参见:http://stackoverflow.com/a/1336245/110488 (3认同)

Che*_*evy 15

我喜欢sed:

time=125959
sed -e "s/\(..\)\(..\)\(..\)/\1:\2:\3/" <<< "$time"
Run Code Online (Sandbox Code Playgroud)
  • 您可以通过替换完善这一.[[:digit:]]
  • 阅读<<<(Here strings)inman bash(1)

  • 若你正在使用GNU sed尝试`sed -e's /../:&/ 2g'<<<"$ time` (3认同)