将日期转换为标准格式

将日期转换为标准格式

我正在使用这个命令,

find -name (file name) -ls | awk '{print $11,"\t",$5,"\t",$7,"\t",$8,$10}' 

收集大量文件的信息。但是,如果文件在 2018 年修改,某些文件会为我们提供奇怪的数字,其中日期应该是。想知道您是否有任何建议将这些数字转换为标准格式,即 2016 年 5 月、2017 年 5 月、2018 年 5 月。 2017 年之前修改的文件的输出没有问题。

有没有办法以这种格式获得当前年份的输出,例如 2018 年 5 月?

答案1

由于您使用的是 Linux,因此可以使用命令-printf的参数find

find -name 'pattern' -printf '%p\t\t%Tb %TY\n'

示例输出:

$ find -name 'file*' -printf '%p\t\t%Tb %TY\n'
./file1     Sep 2018
./file6     Sep 2018
./file4     Sep 2018
./file2     Sep 2018
./file3     Sep 2018
./file5     Sep 2018

答案2

尝试这个命令。

find . -name (file name) | xargs ls -l --time-style="+%b %Y" | awk '{print $NF,$3,$5,$6,$7}' OFS="\t"

ls -l --time-style="+%b %Y"这用于将 ls 输出中的时间样式更改为 MMM YYYY。

相关内容