2017-04-25 67 views
1

所以我需要创建一个输出文件包含从目录和创建日期的文件名列表以特定格式像这样一个外部承包商:有道在bash格式化时间戳

FileName  YYYYmmDDHHMMSS 

到目前为止,我“VE想出:

find ./ -type f -printf " %f %a\n" 

它返回:

FILENAME周五4月21 18:21:15.0458585800 2017

或者:

ls -l | awk {'print $9" "$6" "$7" "$8'} 

返回:

名4月21日18:21

但也不是相当的输出,我需要为它需要纯粹的数值,包括秒。

请记住,文件列表可能非常大,所以效率是一个优先事项,我怎么能得到这个输出?

回答

2

像这样

find ./ -type f -printf " %f %AY%Am%Ad%AH%AM%AS\n" |sed -e 's/\.[0-9]*$//' 

sed需要秒后除去小数部分)

(编辑)与ls这将是:

ls -l --time-style=+%Y%m%d%H%M%S |awk {'print $7" "$6'}