Bash 将文件列表排序为一行程序

Bash 将文件列表排序为一行程序,bash,unix,datetime,sorting,aix,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_mover3090

好吧,这让我发疯了……我有一行程序来查找包含文本的文件……但我无法正确排序日期和时间。它只是不能按照日期和时间升序正确排序。有什么想法吗

$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日到达最后三个文件

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

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

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

你能发布你的输入/输出吗?