В каталоге вы можете найти «стебли» с:
ls * | sed -r 's/[0-9]+$//' | sort | uniq
Для каждого стебля вы можете перечислить все файлы с последним с помощью:
ls FILE_1-* | head -n -1
Или, если вы хотите сохранить самые последние:
ls -rt FILE_1-* | head -n -1
Обе команды могут сопровождаться | xargs rm
для удаления их вывода
Поместите все это в короткий скрипт (*)и запустите:
find. -type d -exec {the_script} {} \;
(*)короткий сценарий будет выглядеть так:
#! /bin/bash
cd "$1" # takes the directory as a parameter
for stem in $(ls FILE* | sed -r 's/[0-9]+$//' | sort | uniq)
do
ls -rt ${stem}* | head -n -1 | xargs echo rm
done
Конечно, тщательно проверьте и замените echo rm
только на rm
, если вы уверены, что это удалит нужные файлы.