2012-07-27 37 views
1

好吧,這是讓我瘋狂的......我有這個班輪來查找其中有文字的文件..但我無法正確排列日期和時間。它只是不會按日期和時間升序排序。有什麼想法嗎?排序文件列表aix一個班輪

$find . -name "dm_rmc_mover*" -mtime -1 -exec grep -il "Error Message: " '{}' \; | xargs ls -ltr 

輸出的例子...

$-rw-rw-r-- 1 root  d_prod  205166 26 Jul 09:35 ./dm_rmc_mover309030.log 
$-rw-rw-r-- 1 root  d_prod  209695 26 Jul 09:35 ./dm_rmc_mover309015.log 
$-rw-rw-r-- 1 root  d_prod  208945 27 Jul 01:37 ./dm_rmc_mover25405.log 
$-rw-rw-r-- 1 root  d_prod  210330 27 Jul 01:37 ./dm_rmc_mover22082.log 
$-rw-rw-r-- 1 root  d_prod  210273 27 Jul 01:37 ./dm_rmc_mover22048.log 
$-rw-rw-r-- 1 root  d_prod  210330 27 Jul 01:38 ./dm_rmc_mover22059.log 
$.... 
$-rw-rw-r-- 1 root  d_prod   3294 27 Jul 08:38 ./dm_rmc_mover310651.log 
$-rw-rw-r-- 1 root  d_prod   3358 27 Jul 08:38 ./dm_rmc_mover310954.log 
$-rw-rw-r-- 1 root  d_prod  177163 27 Jul 08:39 ./dm_rmc_mover276166.log 
$-rw-rw-r-- 1 root  d_prod  176643 27 Jul 08:39 ./dm_rmc_mover276577.log 
$-rw-rw-r-- 1 root  d_prod  106788 27 Jul 09:12 ./dm_rmc_mover311916.log 
$-rw-rw-r-- 1 root  d_prod   3189 20 Jul 02:22 ./dm_rmc_mover52860.log 
$-rw-rw-r-- 1 root  d_prod   3189 20 Jul 02:22 ./dm_rmc_mover52186.log 
$-rw-rw-r-- 1 root  d_prod  194825 20 Jul 11:24 ./dm_rmc_mover377215.log 
$-rw-rw-r-- 1 root  d_prod  180234 20 Jul 11:26 ./dm_rmc_mover375105.log 
$-rw-rw-r-- 1 root  d_prod  147975 20 Jul 12:24 ./dm_rmc_mover412600.log 
$-rw-rw-r-- 1 root  d_prod  208897 20 Jul 12:24 ./dm_rmc_mover411173.log 
$-rw-rw-r-- 1 root  d_prod  193887 20 Jul 12:24 ./dm_rmc_mover412596.log 
$-rw-rw-r-- 1 root  d_prod  76626 20 Jul 13:06 ./dm_rmc_mover446896.log 
$-rw-rw-r-- 1 root  d_prod  135722 20 Jul 13:06 ./dm_rmc_mover446895.log 
$-rw-rw-r-- 1 root  d_prod  145209 20 Jul 13:08 ./dm_rmc_mover446908.log 
$-rw-rw-r-- 1 root  d_prod   3272 23 Jul 14:48 ./dm_rmc_mover532883.log 

最終它獲取到27日的最後三個文件!

+1

你可以發佈你的輸入/輸出嗎? – kev 2012-07-27 08:39:25

回答

0

很可能,xargs正在將文件列表分解爲ls -ltr的多個調用,因此您按照正確的順序列出了一組文件,但整個輸出未按預期排序。您可以通過將-t--verbose添加到參數xargs來驗證是否是這種情況,以便在執行每個命令之前打印每個命令。

爲了完成你想要做的事情,假設所有的日誌文件都在同一個目錄中,而不是在層次結構中,像這樣的東西可能會更好 - 未經測試,但想法是生成文件列表按照你想要的順序,然後過濾那些匹配模式的人,最後得到ls -l輸出:

ls -tr | grep dm_rmc_mover | xargs grep -il "Error Message: " | xargs ls -l