3

我要拿/home/deploy/releases/20120821203354

并返回:

2012-08-21 20:33

基本上拿东西后'releases/'根据数字的位置进行拆分。

背景:OS X 10.7;将在 bash 脚本中使用。

/尴尬的
4

3 回答 3

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}"

都是关于shell参数扩展的

于 2012-08-22T02:36:34.240 回答
3

在 OSX 中,在 bash 中,您可以date像在 FreeBSD 中一样使用该命令。

$ text="/home/deploy/releases/20120821203354"
$ date -j -f "%Y%m%d%H%M%S" "${text##*/}" '+%Y-%m-%d %H:%M'
2012-08-21 20:33

请注意,dateBSD 操作系统中的选项与 Linux 中的选项不同。

于 2012-08-22T03:02:29.647 回答
1

您应该能够根据自己的需要进行调整:

echo " /home/deploy/releases/20120821203354" | awk -F/ '{print $5}' | awk '{print substr($0,0,4)"-"substr($0,5,2)"-"substr($0,7,2)" "substr($0,9,2)":"substr($0,11,2)}'
于 2012-08-22T02:34:17.040 回答