Хотите знать, как удалить файлы, когда их имя увеличивается? - PullRequest
0 голосов
/ 20 марта 2019

У меня есть файл в директории как

file3.proto
file2.proto
file1.proto

Я хочу удалить файл1 и файл2, наибольшее число - это последний файл, который я не хочу удалять. Как я могу добиться этого в сценарии оболочки?

Эта вещь ниже, делает работу, но я хочу быть более динамичной. Я не хочу менять скрипт оболочки каждый раз, когда число увеличивается, например, если файл равен 4, тогда мне нужно изменить 1..3.

ls | grep '.proto' | rm file{1..2}.proto

1 Ответ

1 голос
/ 20 марта 2019
ls *.proto | head -n -1 | xargs rm

который с этими файлами

file1.proto
file2.proto
file3.proto

выполняет команду

rm file1.proto file2.proto

ОБНОВЛЕНИЕ : имейте в виду, что команда ls выводит файлы в алфавитном порядке, который не является числовым порядком ... Я имею в виду, если у вас есть также file25.proto, вы получите этот вывод из ls:

file1.proto
file25.proto
file2.proto
file3.proto

Так что лучше (если возможно) переименовать файлы, например file001.proto, в зависимости от максимально возможного количества файлов, присутствующих в папке. Это распространенная проблема с порядком имен файлов ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...