Что такое однострочник Unix/Linux, который позволит мне удалить все, кроме самых последних N ревизий каждого файла?

У меня есть куча файлов с номерами ревизий как часть устаревшей системы управления активами:

bar.r7.js
bar.r8.js
bar.r9.js
bar.r10.js
bar.r11.js
foo.r1.js
foo.r2.js
foo.r3.js
foo.r4.js
...

Я хочу сохранить последние три из каждого, поэтому в приведенном выше списке команда удалит bar.r7.js , bar.r8.js и foo.r1.js

1 ответ1

1
for name in foo bar; do
    printf '%s\n' "$name".r*.js | sort -V | head -n -3 | xargs -d '\n' rm -v
done

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .