Eu percebi isso enquanto eu estava trabalhando escrevendo a pergunta (eu borracha abaixou eu mesmo aparentemente)
Isso acabou fazendo o trabalho perfeitamente:
find -E . -regex '.*\-[0-9]{1,4}\x[0-9]{1,4}\.(png|gif|jpg)$'
Estou tentando encontrar todos os arquivos com um formato de arquivo padrão (todos os tipos de mídia duplicados criados automaticamente pelo Wordpress). Usando o Regexr , consegui reunir algo rapidamente. No entanto, o OSX encontra o regex e não combina bem com o regexr (que usa o javascript por padrão, mas pode usar a correspondência de padrões do PHP).
Eu estou querendo saber como eu posso adaptar isso à correspondência de regex no estilo Mac OSX BSD. Eu estive hackeando isso por um tempo agora, eu adoraria alguma direção especializada. Especificamente, estou tendo problemas com intervalos de números, isto é, permitindo entre 1 e 4 dígitos separados por um x.
Eu posso fazer isso funcionar com o seguinte egrep, mas não encontrar:
ls | egrep "\d{1,4}x\d{1,4}\.(png|gif|jpg)$"
Os formatos de arquivo que estou tentando encontrar:
location-948510_1280-1024x1024.png
location-948510_1280-10x10.png
location-948510_1280-50x300.png
location-948510_1280-4x29.png
O que precisa ser deixado de fora (como exemplo):
location-948510_1280.png
A regex de pesquisa que estou tentando usar:
find -E . -regex '.*\-\d{1,4}x\d{1,4}\.(png|gif|jpg)$'
Exemplo de correspondência de padrão no regexr:
Eu percebi isso enquanto eu estava trabalhando escrevendo a pergunta (eu borracha abaixou eu mesmo aparentemente)
Isso acabou fazendo o trabalho perfeitamente:
find -E . -regex '.*\-[0-9]{1,4}\x[0-9]{1,4}\.(png|gif|jpg)$'
Use \D
que significa "não um dígito" antes dos dígitos desejados:
find -E . -regex '.*\D\d{1,4}x\d{1,4}\.(png|gif|jpg)$'
// here __^^