У меня есть серия файлов, которые всегда запускаются по крайней мере с 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 цифрах и затем _
Во-первых, команда , как записано ничего не удаляет: как отмечено в nswer Вы связались
1113-секундный, это сверхсложно для Вашего случая, так как Вы не хотите ограничивать удаление диапазоном или подмножеством соответствий (таким образом, Вам не нужен тестовый материал оболочки) - Вы могли просто сделать, Проверяют это с эти
echo
команда, и после того как Вы уверены, что она перечисляет корректные файлы, используйтеrm
вместо этого.
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