排序文件列表aix one liner

时间:2012-07-27 08:37:10

标签: bash unix datetime sorting 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 个答案:

答案 0 :(得分:0)

有可能,xargs将文件列表分成几个ls -ltr的调用,因此您获得按正确顺序列出的文件组,但输出整体不作为预期。您可以通过向-t参数添加--verbosexargs来验证是否是这种情况,以便在执行命令之前打印每个命令。

要完成您要做的事情,假设所有日志文件都在同一目录中,而不是在层次结构中,这样的事情可能会更好 - 未经测试,但想法是生成文件列表您想要的顺序,然后按照与模式匹配的顺序进行过滤,最后获得ls -l输出:

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