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
你能发布你的输入/输出吗?