您好,欢迎来到外链网!
当前位置:外链网 » 站长资讯 » 专业问答 » 文章详细 订阅RssFeed

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

来源:互联网 浏览:98次 时间:2023-04-08

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}'` 

问题解决了! 

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

本文从互联网转载,来源地址:www.downzz.com/shell/17274.html,原作者保留一切权利,若侵权或引用不当,请联系茶猫云(cmy.cn)删除。【茶猫云,优质云服务器提供商】