Я пытаюсь найти все файлы с довольно стандартным форматом файлов (все дубликаты типов мультимедиа автоматически создаются Wordpress). Используя Regexr, я смог довольно быстро собрать что-то вместе. Тем не менее, OSX find regex не очень хорошо сочетается с regexr (который по умолчанию использует javascript, но может использовать сопоставление с шаблоном PHP).

Мне интересно, как я могу приспособить это к соответствию регулярному выражению в стиле BSD Mac OSX. Я уже давно этим занимаюсь В частности, у меня возникли проблемы с диапазонами номеров, то есть с разрешением от 1 до 4 цифр, разделенных знаком x.

Я могу сделать эту работу со следующим egrep, но не найти:

ls | egrep "\d{1,4}x\d{1,4}\.(png|gif|jpg)$"

Форматы файлов, которые я пытаюсь найти:

location-948510_1280-1024x1024.png
location-948510_1280-10x10.png
location-948510_1280-50x300.png
location-948510_1280-4x29.png

Тот, который должен быть опущен (как пример):

location-948510_1280.png

Регулярное выражение find, которое я пытаюсь использовать:

find -E . -regex '.*\-\d{1,4}x\d{1,4}\.(png|gif|jpg)$'

Пример соответствия шаблона на регулярном выражении:

регулярное выражение на регулярное выражение

2 ответа2

0

Я понял это, когда работал над написанием вопроса (очевидно, я пригнулся )

Это закончилось тем, что сделало работу отлично:

find -E . -regex '.*\-[0-9]{1,4}\x[0-9]{1,4}\.(png|gif|jpg)$'
0

Используйте \D что означает "не цифра", перед требуемыми цифрами:

find -E . -regex '.*\D\d{1,4}x\d{1,4}\.(png|gif|jpg)$'
//           here __^^

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