Comando grep: Buscando em Texto - Linux

O comando grep realiza buscas em arquivos utilizando expressões regulares. Ele possui o seguinte formato:

grep [OPÇÕES] PADRÕES [ARQUIVO]

O argumento obrigatório PADRÕES aceita o padrão de texto a ser encontrado. Se o argumento ARQUIVO for fornecido, ele será usado como o arquivo onde a busca será realizada. O parâmetro opcional OPÇÕES permite configurar a aplicação do padrão de busca.

Por exemplo, vamos encontrar o texto "127.0." no arquivo /etc/hosts:

programicio@Programicio:~$ grep "127.0." /etc/hosts
127.0.0.1 localhost
127.0.1.1 Programicio

Outro exemplo é encontrar pastas e arquivos no diretório pessoal do usuário, cujos nomes começam com "Do":

programicio@Programicio:~$ ls ~ | grep "Do"
Documents
Downloads

Principais Elementos das Expressões Regulares:

  • ^: indica que a correspondência com o padrão deve estar no início da linha. Por exemplo, vamos encontrar linhas que começam com o símbolo "s":

    programicio@Programicio:~$ ls ~ | grep "^s"
    shell
    snap
  • $: indica que a correspondência com o padrão deve estar no final da linha. Por exemplo, vamos encontrar todos os arquivos com a extensão "txt":

    ls ~ | grep "\.txt$"
  • .: corresponde a qualquer caractere. Por exemplo, no diretório pessoal do usuário, se tivermos o arquivo test.txt com o seguinte conteúdo:

    Tom
    Bob
    Sam
    Alice
    Kate
    Tim
    Tomas
    

    Vamos encontrar todas as linhas que contêm "Tim" ou "Tom":

    programicio@Programicio:~$ grep "T.m" test.txt
    Tom 
    Tim 
    Tomas
    
  • []: indica caracteres em uma expressão regular que devem ser interpretados como alternativas. Por exemplo, vamos encontrar todas as linhas que contêm "Tim" ou "Tom":

    grep "T[oi]m" test.txt
    
  • [^ ]: indica que a correspondência com o padrão não deve conter os caracteres dentro dos colchetes. Por exemplo, vamos encontrar todas as linhas que não contêm "Tim" ou "Tom":

    grep "T[^oi]m" test.txt
    
  • -: define um intervalo de caracteres que o caractere deve corresponder. Por exemplo, vamos encontrar todas as linhas que começam com um caractere numérico:

    grep "^0-9" test.txt
    
  • \: permite escapar caracteres especiais. Por exemplo, o ponto . é considerado um caractere curinga. No entanto, se precisamos especificar que o texto deve conter exatamente um ponto, devemos usar \.. Por exemplo, vamos encontrar na pasta de downloads todos os arquivos com a extensão tar.gz:

    ls ~/Downloads | grep "\.tar\.gz"
    
  • *: indica que a expressão regular anterior pode ocorrer uma ou mais vezes, ou pode não ocorrer.

  • ?: indica que a expressão regular anterior pode ocorrer uma vez ou pode estar ausente.

  • +: indica que a expressão regular anterior pode ocorrer uma ou mais vezes.

  • {n}: indica que o caractere anterior pode ocorrer no mínimo n vezes. Por exemplo, vamos encontrar linhas onde há duas letras "o" consecutivas:

    grep "o\{2\}" test.txt
Política de Privacidade

Copyright © www.programicio.com Todos os direitos reservados

É proibida a reprodução do conteúdo desta página sem autorização prévia do autor.

Contato: programicio@gmail.com