在shell中将"20120821203354"(非分隔时间戳)转换为"2012-08-21 20:33"?

kay*_*243 3 regex bash time

我要拿 /home/deploy/releases/20120821203354

并返回:

2012-08-21 20:33

基本上'releases/'根据数字的位置取出后的东西并分开.

背景:OS X 10.7; 将用于bash脚本.

/embarrassed

nsh*_*shy 6

这个给你.

a=/home/deploy/releases/20120821203354                                          
b=${a#/home/deploy/releases/}                                                   
c="${b:0:4}-${b:4:2}-${b:6:2} ${b:8:2}:${b:10:2}"
Run Code Online (Sandbox Code Playgroud)

这都是关于shell参数扩展的

  • 更一般地说,您可以使用:`b = $ {a ##*/}`删除以斜杠结尾的最长字符串,这相当于我使用的古老`b = $(basename $ a)`自动. (2认同)