У меня в папке много файлов * .srt. Дело в том, что у меня несколько раз был один и тот же файл с немного другим именем.
Вот так:
one_piece_001_US.srt one_piece_SPECIAL_001_US.srt one_piece_002_US.srt one_piece_003_US.srt one_piece_SPECIAL_003_US.srt one_piece_004_US.srt one_piece_SPECIAL_004_US.srt one_piece_005_US.srt one_piece_006_US.srt one_piece_007_US.srt one_piece_SPECIAL_007_US.srt
Я хочу удалить каждый файл " one_piece_SPECIAL _ * _ US.srt " с помощью оболочки.
Просмотрите каждый файл, затем выполните поиск, если имя файла содержит подстроку [118432 1] СПЕЦИАЛЬНЫЙ в нем. Если это так. Удалите его с помощью команды rm.
#!/bin/bash for file in *.srt; do if [[ $file =~ .*SPECIAL.* ]]; then echo rm $file fi done
Чтобы заставить приведенный выше код работать ... удалите echo в 5 -й строке
Если специальное имя файла соответствует формату имена в вашем примере вы можете использовать
rm -i [DVD]_ONE_PIECE_*_SPECIAL_*US.srt
-i
- это интерактивный режим, поэтому он всегда спрашивает вас, хотите ли вы удалить файл, поэтому вам нужно будет нажать y
15 раз для каждого специальный файл, чтобы вы случайно не удалили не тот файл, если случайно есть какой-то другой файл, который вы хотите сохранить, в том же формате имени.
Если вы не хотите, чтобы вас спрашивали о каждом файл, вы можете поместить -f
вместо -i