如何在 unix 中格式化带有目录名的文件列表?

How can I format a list of files with directory names in unix?

我有一个查找命令,我在脚本中使用它来列出给定一周的归档文件,从每个星期六开始。该脚本效果很好,但如果可能的话,我希望有一些格式。

列出的文件是存档文件,但我的列表中不需要目录名称 "archive"(如脚本输出下所示)。

对于我在 find 命令中使用的变量,我使用了函数:date +"%b %d" -d "last saturday"。正如它所说,这让我在最后一个星期六。

任何帮助或提示都会很棒。

--USES DAYOFWEEK variable TO GET THE LAST SATURDAY; THEN GETS      
--FILES WITH A MODIFED DATE FOR THAT SATURDAY OR NEWER  

find . -newermt "$DAYOFWEEK"  -printf "%TY-%Tm-%Td %TI:%TM %f\n" 

脚本输出

2016-02-01  10:10  dir_name1
2016-02-01  10:10  archive
2016-02-01  07:58  file1.txt
2016-02-01  07:58  file2.txt
2016-02-02  07:58  file3.txt
2016-02-02  07:58  file4.txt
2016-02-01  10:10  dir_name2
2016-02-01  10:10  archive
2016-02-01  07:58  file12.txt
2016-02-01  07:58  file22.txt
2016-02-02  07:58  file32.txt
2016-02-02  07:58  file42.txt

我希望它的格式如下(按客户名称的字母顺序,然后是最旧的文件到最新的文件):

dir_name1
2016-02-01  07:58  file1.txt
2016-02-01  07:58  file2.txt
2016-02-02  07:58  file3.txt
2016-02-02  07:58  file4.txt

dir_name2

2016-02-01  07:58  file12.txt
2016-02-01  07:58  file22.txt
2016-02-02  07:58  file32.txt
2016-02-02  07:58  file42.txt

你想要的不是一条命令就能搞定的,我想

我没有时间尝试重新创建一个与您的相匹配的目录结构并用文件填充它,但认为这种方法应该适合您...

find . -newermt "$DAYOFWEEK" -type f  -printf "%TY-%Tm-%Td %TI:%TM %h %f\n"| sort -t' ' -k3,3 -k1,2  |  awk 'BEGIN{old=""} {if ( != old){print "";print ;print " "}else{print " "};old=}'