Experimente o comando encontrar com o seu -regex
switch ou -iregex
(não diferencia maiúsculas de minúsculas), altere seu regex para .*__[a-zA-z0-9_]*\.(png|jpg|jpeg)
e use a opção -delete
para excluir o arquivo correspondente:
find . -type f -regextype "posix-egrep" -iregex '.*__[a-zA-z0-9_]*\.(png|jpg|jpeg)$'
Você pode usar outros tipos de -regextype
(que é trabalhado) no lugar de "posix-egrep" como: "posix-extended" ou "posix-awk".
-regex pattern
File name matches regular expression pattern. This is a match on the whole path, not a search. For
example, to match a file named './fubar3', you can use the regular expression '.*bar.' or '.*b.*3',
but not 'f.*r3'. The regular expressions understood by find are by default Emacs Regular Expres‐
sions, but this can be changed with the -regextype option.
-iregex pattern
Like -regex, but the match is case insensitive.
-regextype type
Changes the regular expression syntax understood by -regex and -iregex tests which occur later on the
command line. Currently-implemented types are emacs (this is the default), posix-awk, posix-basic,
posix-egrep and posix-extended.
-delete
Delete files
No final, adicione -delete
switch ao comando para excluir os arquivos correspondentes:
find . -type f -regextype "posix-egrep" -iregex '.*__[a-zA-z0-9_]*\.(png|jpg|jpeg)$' -delete
.*__[a-zA-z0-9_]*\.(png|jpg|jpeg)
- O
.*
corresponde a tudo antes de__
- O
__
corresponde a underscores duplos. - O
[a-zA-z0-9_]*
corresponde a todos os caracteres alfanuméricos e um único sublinhado_
. O*
significa que essa classe de caracteres pode ter comprimento zero. - O
\.
corresponde a um único ponto. Para coincidir com um ponto (.
) literalmente você precisa escapar dentro da expressão regular usando uma barra invertida; sem escapar, corresponde a qualquer caractere único. - No
(png|jpg|jpeg)
, o par de parênteses faz com que seja um grupo de correspondências. Corresponde apng
ou (|
)jpg
oujpeg
. - A
$
anchor, corresponde ao final da string (ou nomes de arquivos, neste caso)