Às vezes, você pode precisar pesquisar uma palavra específica ou uma string dentro de um arquivo. Para fazer isso, quase todo editor de texto tem alguma implementação de GUI para ajudá-lo. Mas, para usuários do Linux, é muito mais produtivo e conveniente fazer essas pesquisas na linha de comando.
Na verdade, o Linux tem um utilitário de linha de comando poderoso e conveniente - o comando grep para esta finalidade. Usando isso, você pode pesquisar uma string específica não apenas em um arquivo, mas em vários arquivos para uma pesquisa mais abrangente.
No entanto, antes de usar o comando grep, você primeiro precisa saber como ele funciona e suas sintaxes. E então, para ajudá-lo, reunimos um guia detalhado sobre o uso do comando grep para ajudá-lo a encontrar strings em um arquivo no Linux. Não apenas isso, mas também mostraremos como pesquisar strings em arquivos por meio do editor de texto de linha de comando e do editor de texto GUI.
Observação: Para este tutorial, criamos dois arquivos de texto de demonstração - demofile.txt e demofile02.TXT. Estaremos usando o comando grep para encontrar strings nestes arquivos. Aqui está uma olhada no conteúdo de ambos os arquivos para que você saiba como os comandos estão funcionando.
Conteúdo do demofile.TXT:
Este é um arquivo de demonstração que criei para fins de demonstração. Este contém um monte de palavras para criar frases que finalmente terminam com um ponto. Isto é para o exemplo grep.
Conteúdo de demofile02.TXT:
Este é outro arquivo de demonstração que usarei para esta demonstração. Este é semelhante ao último porque contém três linhas com algumas palavras. Este segundo arquivo ajudará a fornecer alguns exemplos diversificados.
Encontrar strings em um arquivo por meio da linha de comando (método GREP)
GREP é a abreviação de Global Regular Expression Print. É “global” porque pode pesquisar todo o seu sistema Linux. “Expressão regular” é o que chamamos de padrão de pesquisa de texto que usaremos com o comando. E “Imprimir” significa que imprimirá os resultados da pesquisa assim que encontrar uma correspondência com base na expressão regular fornecida.
Agora que você tem uma ideia do que é o comando grep, vamos ver como podemos usá-lo. Esta é a sintaxe para usar o comando grep para localizar uma string em um arquivo:
$ grep fragmento nome do arquivo
Terá de substituir a expressão “string” pela “expressão regular” que deseja usar e o “nome do ficheiro” pelo nome do ficheiro no qual deseja procurar a string.
# 1. Usando GREP para encontrar uma string em um arquivo
Então, digamos que se você deseja pesquisar a palavra “demonstração” no arquivo “demofile.txt, ”você precisará usar este comando:
Demofile de demonstração $ grep.TXT
O que dá a saída:
Como você pode ver, o comando busca toda a linha que contém a string fornecida. Se a string especificada ocorrer em várias linhas, ele irá imprimir todas elas. Vamos ver se funciona procurando a string “This” no “demofile.txt ”arquivo.
$ grep Este demofile.TXT
E o resultado é:
Observe como você usou a string "this" primeiro, e ela não imprimiu nada. É apenas quando você insere "Isto" que você obtém uma correspondência. Como tal, você deve se lembrar que o comando grep diferencia maiúsculas de minúsculas.
Para ignorar o caso, você precisará inserir este comando:
$ grep -i este demofile.TXT
Como você pode ver agora, embora a string fornecida seja “this”, o comando corresponde a “This” e imprime aquela resposta.
# 2. Usando GREP para encontrar a mesma string em vários arquivos
Para pesquisar em vários arquivos a string fornecida, tudo o que você precisa fazer é anexar o comando com todos os nomes de arquivo.
Aqui está um exemplo. Aqui estamos procurando a string “palavras” nos arquivos “demofile.txt ”e“ demofile02.TXT":
$ grep words demofile.txt demofile02.TXT
E o resultado é:
Como você pode ver, o comando grep não só mostrará o resultado correspondente, mas também rotulará convenientemente de qual arquivo ele é.
# 3. Usando GREP para encontrar várias strings em vários arquivos
Você também pode usar o grep para encontrar várias strings em um ou vários arquivos. Esta é a sintaxe que você deverá usar:
$ grep -E 'pattern1 | pattern2 | pattern3 |…' nomedoarquivo1 nomedoarquivo2 nomedoarquivo3…
A opção -E que inserimos trata o seguinte padrão como uma expressão regular estendida, o que nos permite pesquisar por várias strings.
Agora vamos usar o que aprendemos para pesquisar as strings “arquivo” e “palavras” nos dois arquivos: “demofile.txt ”e“ demofile02.TXT":
$ grep -E 'arquivo | palavra' demofile.txt demofile02.TXT
E o resultado é:
# 4. Dicas e truques para usar o comando GREP para encontrar strings
Apesar de sua simplicidade geral, o comando grep é extremamente poderoso. Aqui estão algumas maneiras de usar o comando grep para pesquisas avançadas de string.
Por exemplo, você sabia que pode usar o comando grep com curingas? Vamos considerar este comando:
$ grep word demofile *
O que dá a saída:
Como você pode ver, o comando pesquisou e agora mostra os resultados de ambos os arquivos “demofile.txt ”e“ demofile02.TXT". Isso ocorre porque usamos o caractere curinga asterisco (*) para representar uma ou várias ocorrências de qualquer caractere.
Para obter mais informações sobre os diferentes tipos de curingas e como usá-los, você pode verificar isto leia: Wildcards no Linux explicados com 10 exemplos.
Continuando, o comando grep também suporta toneladas de opções de comando. Já vimos dois deles até agora:
- -i: costumava ignorar maiúsculas e minúsculas.
- -E: usado para tratar a seguinte string como uma expressão regular estendida.
Existem muitas outras opções de comando grep, como:
- -r: faça uma pesquisa recursiva.
- -c: conte o número total de vezes que a string apareceu.
- -n: imprime o número da linha onde a string ocorreu.
- -o: imprime apenas a string correspondente e não imprime a linha inteira.
Tudo o que discutimos até agora deve ser suficiente para ajudá-lo a pesquisar strings em arquivos. No entanto, se você deseja dominar o comando GREP, recomendamos que você confira estes dois artigos:
- Usando o comando GREP no Linux com exemplos
- Os 5 principais usos do comando GREP no Linux
Encontre strings em um arquivo por meio da linha de comando (usando editores de texto de linha de comando)
O comando grep é uma ferramenta poderosa que pode ajudá-lo a realizar pesquisas avançadas para combinar strings com vários arquivos e diretórios em seu PC Linux. No entanto, se você já tiver o arquivo aberto em um editor de texto de linha de comando, não há necessidade de sair do editor de arquivo e usar o comando grep.
Na verdade, a maioria dos editores de texto de linha de comando já vem com uma funcionalidade de pesquisa integrada.
Agora, está além do escopo deste tutorial cobrir cada editor de texto de linha de comando e como encontrar strings em um arquivo aberto nesse editor de texto. Como tal, veremos os dois editores de texto de linha de comando mais populares que você usará:
Como encontrar uma string de texto no nano?
Digamos que você tenha o arquivo aberto no editor de texto nano. Nesse caso, tudo o que você precisa fazer é pressionar Ctrl + W, e você encontrará um novo prompt para digitar a string.
Uma vez feito isso, pressione Enter, e o cursor irá parar no primeiro caractere da primeira ocorrência da string pesquisada. Você pode continuar pressionando Enter para pular para as outras instâncias de string, se houver.
Como encontrar uma string de texto no vim?
Se você estiver usando o editor de texto vim, você pode digitar: / seguido pela string que deseja pesquisar e, em seguida, pressione Enter. Semelhante a antes, ele pousará o cursor na primeira ocorrência da string pesquisada. Aqui também, você pode continuar pressionando Enter para pular para as outras instâncias da string.
Encontre strings em um arquivo por meio da linha de comando (método GUI)
Existe até um método GUI para encontrar strings em um arquivo. Em essência, é semelhante à função “localizar e substituir” que você vê no Microsoft Word; no entanto, isso irá variar de acordo com o editor de texto GUI que você está usando.
Agora, como você sabe, existem centenas de editores de texto e não é prático cobrir todos eles aqui. No entanto, todos eles funcionam de forma semelhante, então você não terá nenhum problema em trabalhar com outras pessoas, uma vez que saiba como um deles funciona.
Para este tutorial, usaremos o editor de texto padrão que vem com o Ubuntu, chamado - “Editor de Texto.”
Como você pode ver na imagem, abrimos o demofile.txt no editor. Agora, clicamos no menu suspenso, que revela as opções para "Localizar" e "Localizar e substituir", que podemos usar para localizar quaisquer strings no arquivo aberto.
Empacotando
Isso nos leva ao final deste breve tutorial sobre como encontrar strings em um arquivo no Linux. Esperamos que você ache isso útil e que tenha ajudado a se tornar mais produtivo com a forma como você pesquisa por strings específicas em seu sistema Linux.
Se você tiver alguma dúvida, deixe-nos um comentário e teremos certeza de ajudá-lo com suas dúvidas.
Se você está começando com Linux, não se esqueça de verificar nossa série Aprenda Linux. Ele está repleto de tutoriais, instruções e guias incríveis, projetados para iniciantes e usuários mais experientes para ajudá-lo a se tornar um verdadeiro usuário avançado do Linux.