簡體   English   中英

如何在UNIX中格式化目錄名稱為文件的列表?

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

我有一個find命令,我正在腳本中使用該命令列出給定一周(從每個星期六開始)的存檔文件。 該腳本的效果很好,但是如果可能的話,我希望有一些格式。

列出的文件是已歸檔的文件,但是我的列表中不需要目錄名稱“ 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 ($3 != old){print "";print $3;print $1" "$4}else{print $1" "$4};old=$3}'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM