<Anterior | Conteúdo | Próxima>
Variações de caracteres tradicionais
Se quiséssemos construir uma expressão regular que encontrasse todos os arquivos em nossas listas começando com uma letra maiúscula, poderíamos fazer isso:
[me @ linuxbox ~] $ grep -h '^ [ABCDEFGHIJKLMNOPQRSTUVWXZY]' dirlist * .txt
[me @ linuxbox ~] $ grep -h '^ [ABCDEFGHIJKLMNOPQRSTUVWXZY]' dirlist * .txt
É apenas uma questão de colocar todas as 26 letras maiúsculas em uma expressão entre colchetes. Mas a ideia de toda essa digitação é profundamente perturbadora, então há outra maneira:
[me @ linuxbox ~] $ grep -h '^ [AZ]' dirlist * .txt
MAKEDEV
Painel de controle GET
POSTE DA CABEÇA X X11
MAKEFLOPPIES Xorg
NetworkManager NetworkManager Dispatcher
[me @ linuxbox ~] $ grep -h '^ [AZ]' dirlist * .txt
MAKEDEV
Painel de controle GET
POSTE DA CABEÇA X X11
MAKEFLOPPIES Xorg
NetworkManager NetworkManager Dispatcher
Usando um intervalo de três caracteres, podemos abreviar as 26 letras. Qualquer gama de caracteres -
ters podem ser expressos dessa forma, incluindo vários intervalos, como esta expressão que corresponde a todos os nomes de arquivo que começam com letras e números:
[me @ linuxbox ~] $ grep -h '^ [A-Za-z0-9]' dirlist * .txt
[me @ linuxbox ~] $ grep -h '^ [A-Za-z0-9]' dirlist * .txt
Nos intervalos de caracteres, vemos que o caractere de traço é tratado de maneira especial, então como incluímos realmente um caractere de traço em uma expressão entre colchetes? Tornando-o o primeiro caractere da expressão. Considere estes dois exemplos:
[me @ linuxbox ~] $ grep -h '[AZ]' dirlist * .txt
[me @ linuxbox ~] $ grep -h '[AZ]' dirlist * .txt
Isso corresponderá a todos os nomes de arquivos que contenham uma letra maiúscula. Enquanto:
[me @ linuxbox ~] $ grep -h '[-AZ]' dirlist * .txt
[me @ linuxbox ~] $ grep -h '[-AZ]' dirlist * .txt
corresponderá a todos os nomes de arquivos que contenham um hífen, ou um “A” maiúsculo ou um “Z” maiúsculo.