Você não escapou do caractere "
. A barra invertida dupla antes será substituída por barra invertida única e o "
não será ignorado. Remova uma barra invertida ou adicione uma.
Experimente esta expressão regular:
grep -i '^[0-9a-z _]\+\.png\([^0-9a-z]+\|$\)' file | grep -v '^[0-9A-Za-z _]\+\.\(png\|PNG\)\([^0-9A-Za-z]\|$\)'
Ele corresponderá a todas as linhas que contenham desde o começo da linha:
- pelo menos em caracteres
0-9
(intervalo de0
,1
, ...,9
caracteres),a-z
' '
(espaço), '_' - um ponto (precisa ser escapado com barra invertida, caso contrário, significará 'qualquer caractere único')
- 'png' (ou 'Png', etc. porque
-i
é adicionado) - e não seguido por
0-9
ea-z
caracteres (ouA-Z
porque-i
é adicionado).
-i
- desativará a diferenciação entre maiúsculas e minúsculas