歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Linux系統時間格式錯亂,導致awk {print $9}命令出錯

Linux系統時間格式錯亂,導致awk {print $9}命令出錯

日期:2017/2/28 16:49:02   编辑:Linux教程

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

問題解決了!

在此感謝~趙進~的幫助!

Copyright © Linux教程網 All Rights Reserved