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

6 melhores ferramentas da 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 que são usadas para pesquisar strings ou padrões correspondentes em arquivos de texto. Essas ferramentas geralmente são usadas juntamente com expressões regulares - reduzidas como Regex - que são seqüências únicas para descrever um padrão de pesquisa.

Sem muito mais barulho, vamos mergulhar.

1. Comando Grep

Chegando em primeiro lugar é a ferramenta de utilidade Grep - é um acrônimo para Impressão de expressão regular global, é uma ferramenta poderosa de linha de comando que é útil ao procurar uma string específica ou um padrão em um arquivo.

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

  • Procure strings ou padrões correspondentes em um arquivo.
  • Pesquise strings ou padrões correspondentes em arquivos gzipped.
  • Conte o número de correspondências de string.
  • Imprima os números de linha que contêm a string ou padrão.
  • Pesquise recursivamente pela string nos diretórios.
  • Execute uma pesquisa reversa (eu.e. Exibir resultados de strings que não correspondem aos critérios de pesquisa).
  • Ignore a sensibilidade ao caso ao procurar strings.

A sintaxe para usar o grep O comando é bastante simples:

$ GREP FILE 

Por exemplo, para pesquisar a string 'Linux'Em um arquivo, digamos, olá.TXT Ao ignorar a sensibilidade do caso, execute o comando:

$ grep -i linux Olá.TXT 
Pesquise por string em um arquivo

Para obter mais opções que você pode usar grep, Basta ler nosso artigo que exemplos de exemplos de comando Grep mais avançados.

2. comando sed

Sed - abreviação de Editor de fluxo - é outra ferramenta útil da linha de comando para o texto de manipulação em um arquivo de texto. Sed pesquisas, filtra e substitui as cordas de um determinado arquivo de maneira não interativa.

Por padrão, sed Comando imprime a saída para Stdout (Padrão out), implicando que o resultado da execução é impresso no terminal em vez de ser salvo em um arquivo.

O comando sed é chamado da seguinte forma:

$ sed -options comando [arquivo a ser editado] 

Por exemplo, para substituir todas as instâncias de 'Unix' com 'Linux', Invoque o comando:

$ sed 's/unix/linux' Olá.TXT 
Substitua a string em um arquivo

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

$ sed 's/unix/linux' Olá.txt> saída.TXT 
Redirecionar a saída para o arquivo

A saída do comando é salva para o saída.TXT arquivo em vez de ser impresso na tela.

Para conferir mais opções que podem ser usadas, mais uma vez, confira as páginas do homem.

$ Man sed 

3. Comando ack

ACK é uma ferramenta de linha de comando rápida e portátil escrita em Perl. ACK é considerado um substituto amigável para Utilitário Grep e as saídas resulta de uma maneira visualmente atraente.

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

Sintaxe do comando ack:

$ ack [options] padrão [arquivo…] $ ack -f [options] [diretório…] 

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

$ ack linux Olá.TXT 
Verifique uma string em um arquivo

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

No exemplo abaixo, nenhum arquivo ou diretório foi fornecido, mas a ACK detectou automaticamente o arquivo disponível e pesquisou o padrão de correspondência fornecido.

$ ack linux 
String de pesquisa em um diretório

Para instalar ACK No seu sistema, execute o comando:

$ sudo apt install ack-grep [no debian/ubuntu] $ sudo dnf install ack-grep [no CentOS/rhel] 

4. Comando AWK

Awk é uma linguagem de script de pleno direito e também uma ferramenta de processamento de texto e manipulação de dados. Ele pesquisa arquivos ou programas que contêm o padrão de pesquisa. Quando a corda ou padrão é encontrado, Awk agir na partida ou linha e imprime os resultados Stdout.

O Awk O padrão é fechado entre os aparelhos encaracolados enquanto todo o programa é fechado em citações únicas.

Vamos dar o exemplo mais simples. Vamos supor que você esteja imprimindo a data do seu sistema, como mostrado:

$ data 
Verifique a data do sistema Linux

Suponha que você queira apenas imprimir o primeiro valor, que é o dia da semana. Nesse caso, pague a saída em Awk como mostrado:

$ data | awk 'print $ 1' 

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

$ data | awk 'imprima $ 1, $ 2' 

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

Exemplos de comando AWK

Para obter mais opções que você pode usar Awk, Basta ler nossa série de comando AWK.

5. Pesquisador de prata

O pesquisador de prata é uma ferramenta de pesquisa de código de plataforma cruzada e abre-sea ACK Mas com uma ênfase na velocidade. Isso facilita a busca de uma string específica nos arquivos no menor tempo possível:

Sintaxe:

$ ag options search_pattern/path/to/arquivo 

Por exemplo, para pesquisar a string 'Linux'Em um arquivo olá.TXT Invoque o comando:

$ ag linux Olá.TXT 
Encontre string no arquivo

Para opções adicionais, visite as páginas do homem:

$ MAN AG 

6. Ripgrep

Por fim, temos a ferramenta de linha de comando ripgrep. Ripgrep é um utilitário de plataforma cruzada para pesquisar padrões de regex. É muito mais rápido do que todas as ferramentas de pesquisa mencionadas anteriormente e pesquisa recursivamente diretórios por padrões de correspondência. Em termos de velocidade e desempenho, nenhuma outra ferramenta se destaca que Ripgrep.

Por padrão, Ripgrep irá pular arquivos binários/arquivos ocultos e diretórios. Além disso, esteja aconselhado que, por padrão, não procure arquivos que sejam ignorados por .gitignore/.ignorar/.rgignore arquivos.

Ripgrep Também permite procurar tipos de arquivo específicos. Por exemplo, para limitar sua pesquisa a JavaScript Os arquivos são executados:

$ rg -TSJ 

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

$ rg [opções] padrão [caminho…] 

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

$ rg linux 
Pesquise por string em um arquivo

Para instalar Ripgrep No seu sistema, execute os seguintes comandos:

$ sudo apt install ripgrep [on Debian/Ubuntu] $ sudo pacman -s ripgrep [em Arch Linux] $ sudo zypper install ripgrep [on OpenSuse] $ sudo dnf install ripgrep [on CENTOS/RHEL/FEDORA] 

Para opções adicionais, visite as páginas do homem:

$ MAN RG 

Estas são algumas das ferramentas de linha de comando mais amplamente usadas para pesquisa, filtragem e manipulação de texto no Linux. Se você tem outras ferramentas que sente que deixamos de fora, informe -nos na seção de comentários.