Pesquisa de site

6 melhores ferramentas CLI para pesquisar dados de texto simples usando expressões regulares


Este guia faz um tour por algumas das melhores ferramentas de linha de comando usadas para pesquisar strings ou padrões correspondentes em arquivos de texto. Essas ferramentas geralmente são usadas junto com expressões regulares – abreviadas como REGEX – que são strings exclusivas para descrever um padrão de pesquisa.

Sem mais delongas, vamos começar.

1. Comando Grep

Em primeiro lugar está a ferramenta utilitária grep – é um acrônimo para Global Regular Expression Print, é uma poderosa ferramenta de linha de comando que é útil ao pesquisar uma string específica ou um padrão em um arquivo .

Grep vem com distribuições Linux modernas por padrão e oferece flexibilidade para retornar vários resultados de pesquisa. Com o grep, você pode realizar uma vasta gama de funções, como:

  • Procure strings ou padrões correspondentes em um arquivo.
  • Pesquise strings ou padrões correspondentes em arquivos compactados.
  • Conte o número de correspondências de string.
  • Imprima os números das linhas que contêm a string ou padrão.
  • Pesquise recursivamente a string nos diretórios.
  • Execute uma pesquisa reversa (ou seja, exiba resultados de strings que não correspondem aos critérios de pesquisa).
  • Ignore a distinção entre maiúsculas e minúsculas ao pesquisar strings.

A sintaxe para usar o comando grep é bastante simples:

grep pattern FILE

Por exemplo, para procurar a string ‘Linux‘ em um arquivo, digamos, hello.txt ignorando a distinção entre maiúsculas e minúsculas, execute o comando:

grep -i Linux hello.txt

Para obter mais opções que você pode usar com grep, basta ler nosso artigo que contém exemplos de comandos grep mais avançados.

2. Comando sed

Sed – abreviação de Stream Editor – é outra ferramenta útil de linha de comando para manipulação de texto em um arquivo de texto. Sed pesquisa, filtra e substitui strings em um determinado arquivo de maneira não interativa.

Por padrão, o comando sed imprime a saída em STDOUT (Standard Out), implicando que o resultado da execução é impresso no terminal em vez de sendo salvo em um arquivo.

O comando Sed é invocado da seguinte forma:

sed -OPTIONS command [ file to be edited ]

Por exemplo, para substituir todas as instâncias de ‘Unix‘ por ‘Linux‘, invoque o comando:

sed 's/Unix/Linux' hello.txt

Se você deseja redirecionar a saída em vez de imprimi-la no terminal, use o sinal de redirecionamento ( > ) conforme mostrado.

sed 's/Unix/Linux' hello.txt > output.txt

A saída do comando é salva no arquivo output.txt em vez de ser impressa na tela.

Para verificar mais opções que podem ser usadas, verifique mais uma vez as páginas de manual.

man sed

3. Comando Confirmar

Ack é uma ferramenta de linha de comando rápida e portátil escrita em Perl. Ack é considerado um substituto amigável para o utilitário grep e gera resultados de uma maneira visualmente atraente.

O comando Ack pesquisa no arquivo ou diretório as linhas que contêm a correspondência para os critérios de pesquisa. Em seguida, ele destaca a string correspondente nas linhas.
Ack tem a capacidade de distinguir arquivos com base em suas extensões e, até certo ponto, no conteúdo dos arquivos.

Sintaxe do comando de confirmação:

ack [options] PATTERN [FILE...]
ack -f [options] [DIRECTORY...]

Por exemplo, para verificar o termo de pesquisa Linux, execute:

ack Linux hello.txt

A ferramenta de pesquisa é bastante inteligente e se nenhum arquivo ou diretório for fornecido pelo usuário, ela pesquisa o diretório e subdiretórios atuais em busca do padrão de pesquisa.

No exemplo abaixo, nenhum arquivo ou diretório foi fornecido, mas o ack detectou automaticamente o arquivo disponível e procurou o padrão correspondente fornecido.

ack Linux

Para instalar o ack em seu sistema execute o comando:

sudo apt install ack-grep    [On Debian/Ubuntu]
sudo dnf install ack-grep    [On CentOS/RHEL]

4. Comando Awk

Awk é uma linguagem de script completa e também uma ferramenta de processamento de texto e manipulação de dados. Ele pesquisa arquivos ou programas que contenham o padrão de pesquisa. Quando a string ou padrão é encontrado, awk executa uma ação na correspondência ou linha e imprime os resultados em STDOUT.

O padrão AWK é colocado entre chaves enquanto todo o programa é colocado entre aspas simples.

Vejamos o exemplo mais simples. Vamos supor que você esteja imprimindo a data do seu sistema conforme mostrado:

date

Suponha que você queira imprimir apenas o primeiro valor, que é o dia da semana. Nesse caso, canalize a saída para awk conforme mostrado:

date | awk '{print $1}'

Para exibir valores subsequentes, separe-os usando uma vírgula, conforme mostrado:

date | awk '{print $1,$2}'

O comando acima exibirá o dia da semana e a data do mês.

Para obter mais opções que você pode usar com o awk, basta ler nossa série de comandos do awk.

5. Pesquisador de Prata

O Silver Searcher é uma ferramenta de pesquisa de código aberto e multiplataforma semelhante ao ack, mas com ênfase na velocidade. Isso facilita a pesquisa de uma string específica nos arquivos no menor tempo possível:

Sintaxe:

ag OPTIONS search_pattern /path/to/file

Por exemplo, para procurar a string ‘Linux‘ em um arquivo hello.txt, invoque o comando:

ag Linux hello.txt

Para opções adicionais, visite as páginas de manual:

man ag

6. Ripgrep

Por último, temos a ferramenta de linha de comando ripgrep. Ripgrep é um utilitário multiplataforma para pesquisar padrões regex. É muito mais rápido do que todas as ferramentas de pesquisa mencionadas anteriormente e pesquisa recursivamente os diretórios em busca de padrões correspondentes. Em termos de velocidade e desempenho, nenhuma outra ferramenta se destaca como o Ripgrep.

Por padrão, ripgrep irá ignorar arquivos binários/arquivos e diretórios ocultos. Além disso, esteja ciente de que, por padrão, ele não procurará arquivos ignorados pelos arquivos .gitignore/.ignore/.rgignore.

Ripgrep também permite pesquisar tipos de arquivos específicos. Por exemplo, para limitar sua pesquisa a arquivos Javascript, execute:

rg -Tsj

A sintaxe para usar o ripgrep é bastante fácil:

rg [OPTIONS] PATTERN [PATH...]

Por exemplo. Para procurar instâncias da string ‘Linux’ em arquivos localizados dentro do diretório atual, execute o comando:

rg Linux

Para instalar o ripgrep em seu sistema execute os seguintes comandos:

sudo apt install ripgrep      [On Debian/Ubuntu]
sudo pacman -S ripgrep        [On Arch Linux]
sudo zypper install ripgrep   [On OpenSuse]
sudo dnf install ripgrep      [On CentOS/RHEL/Fedora]

Para opções adicionais, visite as páginas de manual:

man rg

Estas são algumas das ferramentas de linha de comando mais utilizadas para pesquisar, filtrar e manipular texto no Linux. Se você tiver outras ferramentas que acha que deixamos de fora, informe-nos na seção de comentários.