如何剪切日期/时间戳字符串?

如何剪切日期/时间戳字符串?

所以我正在使用

 TIMESTAMP=$( stat -c "%y" $JARNAME.jar )
 print $TIMESTAMP

它的输出是这样的2015-04-24 17:23:03.000000000 -0500

我只需要2015-04-24 17:23:03部分

答案1

由于您似乎使用的是 Linux 版本stat(1),我假设您也有 GNUcoreutils版本date(1)

TIMESTAMP=$( date +'%Y-%m-%d %H:%M:%S' -r "$JARNAME".jar )

答案2

GNU stat可以简单地使用点修饰符1(+字段宽度)在介绍性字符%和指定格式的字符之间,例如stat --printf "%.19y" filename,所以在您的情况下:

TIMESTAMP=$(stat -c "%.19y" infile)

BSD/OSX stat可以使用-f(格式) 和-t时间fmt) 开关:

TIMESTAMP=$(stat -f '%Sm' -t '%Y-%m-%d %H:%M:%S' infile)

1
点:与字段宽度一起,当文本较长时,字段不会扩展,而是会被截断。

答案3

试试这个参数扩展:

echo "${TIMESTAMP%.*}"

输出:

2015-04-24 17:23:03

答案4

或者使用剪切:

TIMESTAMP=$( stat -c "%y" $JARNAME.jar | cut -d. -f1 )
print $TIMESTAMP

相关内容