Professor Júlio Cezar Neves Aula
É um método formal de se especificar um padão de texto Mareiras de procucar, alterar e/ou modelar um texto
Grupo | Meta | Mnemônico | Obs |
---|---|---|---|
Representantes | . | ponto | Qualquer caracter. |
representa um ou | [ ] | lista | Apenas o que coincidir. Não existe coringa |
mais caracteres | [^] | lista negada | Inverte a lógica |
Quantificadores | ? | opcional | O caractere ou lista anterior ficam opcionais |
" | * | asterisco | A entidade anterior apareça em qualquer quantidade. De 0 a ∞ |
" | + | mais | A entidade anterior aparece de 1 a ∞. no grep usar opção -E |
" | { } | chaves | {n} n vezes. {n,m} de n até m vezes. |
Âncoras | ^ | circunflexo | Início da linha. Dentro da lista é negação. |
" | $ | cifrão | Fim da linha |
" | \b | borda | Limítrofe da expressão. Sinal '<>' também é usado |
Outros | \ | escape | Criptonita. Tira o poder dos demais metacaracteres |
" | | | ou | Pode ter mais de um valor |
" | ( ) | grupo | Aceita subgrupo. Ex.: ((su|hi)per)?mercado -> supermercado, hipermercado ou mercado |
" | \n | retrovisor | \1...\9. Equivale ao q foi encontrado no Grupo |
Respeita o idioma
$ grep -o \[[:lower:]] <<< ação
$ ação
$ grep -o [a-z] <<< ação
$ ao
classe POSIX | Similar | Significado |
---|---|---|
[:upper:] | [A-Z] | letras maiúsculas |
[:lower:] | [a-z] | letras minúsculas |
[:alpha:] | [A-Za-z] | maiúsculas/minúsculas |
[:alnum:] | [A-Za-z0-9] | letras e números |
[:digit:] | [0-9] | números |
[:xdigit:] | [0-9A-Fa-f] | números hexadecimais |
[:punct:] | [.,!?:...] | sinais de pontuação |
[:blank:] | [ \t] | espaço e TAB |
[:space:] | [ \t\n\r\f\v] | caracteres brancos |
[:cntrl:] | - | caracteres de controle |
[:graph:] | [^ \t\n\r\f\v] | caracteres imprimíveis |
[:print:] | [^\t\n\r\f\v] | imprimíveis e o espaço |
Escape | Significado |
---|---|
\s | Equivale espaços em branco, \r ou \t |
\S | Negação do \s |
\w | Equivale letra, digito, ou '_' |
\W | Negação de \w |
\d | Números - quando usando o grep com a opção -P (Perl) |
\D | Negação de \d |
#!/bin/bash
# transforma um arquivo padrão DOS para o formato Linux
# removendo CR - carriage return (^M)
# tr - modifica ou apaga caractere
# tee - mostra na tela e salva no arquivo
# test - integrado ao if pelo [] para testar argumentos
if [ -e ${1} ]
then
echo Antes
cat -A ${1}
file ${1}
echo Depois
tr -d '\r' < ${1} | tee ${1}.lx | cat -A
file ${1}.lx
else
echo Arquivo não existe
fi
The control characters in ASCII still in common use include:
- 0 (null, NUL, \0, ^@), originally intended to be an ignored character, but now used by many programming languages including C to mark the end of a string.
- 7 (bell, BEL, \a, ^G), which may cause the device to emit a warning such as a bell or beep sound or the screen flashing.
- 8 (backspace, BS, \b, ^H), may overprint the previous character.
- 9 (horizontal tab, HT, \t, ^I), moves the printing position right to the next tab stop.
- 10 (line feed, LF, \n, ^J), moves the print head down one line, or to the left edge and down. Used as the end of line marker in most UNIX systems and variants.
- 11 (vertical tab, VT, \v, ^K), vertical tabulation.
- 12 (form feed, FF, \f, ^L), to cause a printer to eject paper to the top of the next page, or a video terminal to clear the screen.
- 13 (carriage return, CR, \r, ^M), moves the printing position to the start of the line, allowing overprinting. Used as the end of line marker in Classic Mac OS, OS-9, FLEX (and variants). A CR+LF pair is used by CP/M-80 and its derivatives including DOS and Windows, and by Application Layer protocols such as FTP, SMTP, and HTTP.
- 26 (Control-Z, SUB, EOF, ^Z). Acts as an end-of-file for the Windows text-mode file i/o.
- 27 (escape, ESC, \e (GCC only), ^[). Introduces an escape sequence.
Possui a lógica inversa quando o circunflexo (^) é
colocado no incício da lista.
Ex.: [^0-9] equivale a tudo menos os números.