Linux系统时间格式错乱,导致awk {print $9}命令出错

Linux系统时间格式错乱,导致awk {print $9}命令出错

ls -l命令显示的格式不一致

以下四行,中间的二行日期时间显示与前后不一致:-rw-r–r– 1 toptest tiptop 5320 2006-05-07 abmi601.per-rw-r–r– 1 toptest tiptop 2022 12月 12 16:37 abmi710b.per-rw-r–r– 1 toptest tiptop 5116 6月 6 20:40 abmq500.per-rw-r–r– 1 toptest tiptop 4970 2006-09-20 abmq500.per060920

导致下面的命令抓到的参数时而正确时而为空ermnewtmp=`ls -l –sort=time -r erm*.jar | awk ‘{print $9}’`

分析原因:本以为系统会根据文件创建年限不一样而显示时间不一样,,最后在别的Linux机器上ls -l 后发现不是这么回事。我也没再深究具体原因。

解决办法:通过参数格式化显示日期的类型

ls -l –time-style=+%Y-%m-%d-%T | sort -k 6按时间 反向排序-rwxrwxrwx 1 root root 14364 2008-10-13-08:56:11 update.log

ls -l –time-style=+%Y-%m-%d-%T | sort -r -k 6按大小从大到小排序

最后将脚本语句由ermnewtmp=`ls -l –sort=time -r erm*.jar | awk ‘{print $9}’`改为ermnewtmp=`ls -l –time-style=+%Y-%m-%d-%T –sort=time -r erm*.jar | awk ‘{print $7}’`

问题解决了!

在此感谢~赵进~的帮助!

自己打败自己的远远多于比别人打败的。

Linux系统时间格式错乱,导致awk {print $9}命令出错

相关文章:

你感兴趣的文章:

标签云: