Командная строка regextype для удаления файлов

У меня есть серия файлов, которые всегда запускаются по крайней мере с 5 численных значений как:

85966_88.jpg

Используя этот ответ я учился использовать находку и regextype в команде для удаления файлов как это:

find . -regextype posix-extended -iregex './a_[0-9]{6}' -execdir bash -c '[[ ${1##./a_} > 000750 ]] && echo $1' "removing: " {} \;

Я изменил эту команду к комплекту мои потребности как это:

find . -regextype posix-extended -iregex './[0-9]{5}' -execdir bash -c '[[ ${1##./} > 000001 ]] && echo $1' "removing: " {} \;

Я выполняю команду, и она не удаляет файлы. Я не могу выяснить, как удалить все .jpg, которые имеют числовые значения в первых 5 цифрах и затем _

0
задан 24 May 2017 в 16:59

1 ответ

Во-первых, команда , как записано ничего не удаляет: как отмечено в nswer Вы связались

, Проверяют это с эти echo команда, и после того как Вы уверены, что она перечисляет корректные файлы, используйте rm вместо этого.

1113-секундный, это сверхсложно для Вашего случая, так как Вы не хотите ограничивать удаление диапазоном или подмножеством соответствий (таким образом, Вам не нужен тестовый материал оболочки) - Вы могли просто сделать

find -regextype egrep -regex '.*/[0-9]{5}_.*\.jpg' -print

(для тестирования) и замена -print -delete, после того как Вы удовлетворены, что это работает правильно.

однако даже regex кажется сверхсложным - простое соответствие шарика на самом деле меньше вводит:

find -name '[0-9][0-9][0-9][0-9][0-9]_*.jpg' -print

(снова, замените -print -delete, когда Вы будете уверены).

, Если Вы не должны искать рекурсивно, простой шарик оболочки должен работать:

rm -i [0-9][0-9][0-9][0-9][0-9]_*.jpg
2
ответ дан 3 November 2019 в 04:47

Другие вопросы по тегам:

Похожие вопросы: