Início·Comandos de terminal

grep

Processamento de texto

Uso

grep -rn '[pattern]' [path]

Seleciona as linhas que casam com um padrão; por padrão usa regex básica, então + ? | e () precisam de -E ou de barra invertida.

Opções comuns

OpçãoSignificado
-iIgnore case
-rSearch a whole directory tree; -R also follows symlinks
-nPrint the line number of each hit
-vInvert: print the lines that do not match
-lPrint only the names of the files that matched
-wMatch whole words only
-EExtended regex, so + ? | and () work unescaped
-CPrint N lines of context around each hit

Exemplos

grep -rn 'TODO' src/

Every TODO in the tree, with file and line.

grep -v '^#' nginx.conf

Drops the comment lines.

ps aux | grep '[n]ginx'

Finds nginx without matching the grep itself.

Foram feitos para serem encadeados com pipes. Três comandos ligados costumam ser mais curtos que um que faça tudo.

Como ler

  • Os colchetes [ ] marcam uma parte que você pode omitir.
  • As reticências … indicam que você pode listar vários.
  • As opções diferenciam maiúsculas: em alguns comandos -r e -R fazem coisas diferentes.

Perguntas

Q. O que grep faz?

Seleciona as linhas que casam com um padrão; por padrão usa regex básica, então + ? | e () precisam de -E ou de barra invertida.

Q. Como se digita?

grep -rn '[pattern]' [path] — os colchetes marcam o que você pode omitir.

Q. Quantas opções vale a pena saber?

Aqui estão 8; a lista completa está em man grep. Este comando fica em Processamento de texto.

Comandos relacionados

página man: man grep