我有一個文件夾,其中包含3個月和1年以下的備份文件。他們有相同的部分名稱,但其他部分是備份日期(所以我有一組文件)。從我的文件夾中的所有文件中,我只需要保留每個組中的3個zip文件:不是來自所有文件的最後3個修改文件,而是每個組的最後3個文件,因爲可以在不同的時間創建備份過去。其他文件,刪除。如何處理三個文件組中的文件
例子:
的zip文件列表:
ais_2016-02-21.zip
ais_hg_2016-07-31.zip
ais_hg_2016-08-07.zip
ais_hg_2016-08-14.zip
ais_hg_2016-08-21.zip
ais_hg_2016-08-28.zip
ais_hg_2016-09-04.zip
asf_2016-07-17.zip
asf_2016-07-24.zip
asf_2016-07-31.zip
asf_2016-08-07.zip
asf_2016-08-14.zip
asf_2016-08-21.zip
asf_2016-08-28.zip
asf_2016-09-04.zip
asf-ant-tasks_2015-12-13.zip
asf-ant-tasks_2015-12-27.zip
asf-ant-tasks_2016-01-17.zip
asf-ant-tasks_2016-01-31.zip
asf-ant-tasks_2016-02-14.zip
asf-ant-tasks_hg_2016-02-28.zip
asf-ant-tasks_hg_2016-08-07.zip
asf-ant-tasks_hg_2016-08-14.zip
asf-ant-tasks_hg_2016-08-21.zip
asf-ant-tasks_hg_2016-08-28.zip
組:
ais
ais_hg
asf
asf-ant-tasks
asf-ant-tasks_hg
,我需要從ais
從ais_hg
保持3個最後修改的文件,3,3從asf
等等。但是,有更多的文件組(130),所以我無法手動編寫腳本中的每個組。
所以我在這裏。我有兩個陣列,我不知道從哪裏出發。
#!/bin/bash
files=(/media/sf/zipp/outOFtime/*.zip)
cuts=($(find ${files[@]} -type f | sed 's/.{15}$//' | sed 's/^.{1}//' | sort |uniq))
for f in "${cuts[@]}"
do
echo -e $f
done
刪除外部圖像鏈接並提供相同的文本表示。 – Inian
在我看來,你應該考慮一個不同的語言,比如Python或Ruby。 –
但這是不可能的不幸:(我必須使用這種語言,因爲這是我的任務在我的新作 – sensey