Welcome 微信登录
编程资源 图片资源库 蚂蚁家优选 PDF转换器

首页 / 操作系统 / Linux / 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}"` 问题解决了! 在此感谢~赵进~的帮助!Ubuntu 9.04硬盘安装简介给Ubuntu也做个“SP3”补丁包光盘相关资讯      Linux教程 
  • Linux教程:如何在命令行中查看目  (07/28/2014 12:22:23)
  • Linux 修改root密码  (11/03/2012 07:53:38)
  • su - root 与su root的区别  (06/06/2012 00:39:40)
  • Linux进程间通信:消息队列  (01/28/2013 09:43:00)
  • U盘安装Linux开机无法启动解决方法  (10/07/2012 08:55:52)
  • Windows 7/Linux 同步时间  (05/15/2012 06:17:55)
本文评论 查看全部评论 (0)
表情: 姓名: 字数