[英]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.