Como usar o Grep para pesquisar recursivamente

Como usar o Grep para pesquisar recursivamente
A instrução "grep" tem sido muito conhecida entre os usuários do Linux por seus recursos de pesquisa. A consulta "Grep" funciona de maneira diferente enquanto usava com bandeiras diferentes para pesquisa recursiva. A bandeira mais usada do comando grep é "-r", o que implica pesquisar no diretório atual. Vamos fazer alguns exemplos de fazer uma pesquisa recursiva no Ubuntu 20.04 Usando o comando Grep. Comece do lançamento do aplicativo Terminal através da chave de atalho “Ctrl+Alt+T”.

Pesquise sem caminho de diretório

A maneira mais simples e mais fácil de pesquisa recursiva é usar uma sinalizadora simples "-r" dentro do comando Grep e um padrão de correspondência sem qualquer caminho mencionado. Temos usado o comando Grep para procurar um padrão "John" dentro dos arquivos. A bandeira "-r" pesquisará todos os arquivos localizados dentro da casa ou do diretório atual do Ubuntu 20.04 e nas subpastas do diretório inicial também. Você pode vê -lo mostra os caminhos do arquivo que têm a correspondência específica e exibe o texto correspondente nesse arquivo também. Os dois primeiros arquivos estão localizados no subdiretório de documentos da pasta doméstico, enquanto os outros dois estão localizados no diretório doméstico. Isso significa que ele pesquisou de todas as subpastas do diretório atual também.

$ grep -r "john"

Vamos procurar recursivamente outra palavra, "coração", utilizando a instrução Grep com a bandeira "-r". A saída de comando mostra que foi encontrada nos dois arquivos. Um arquivo reside no diretório doméstico enquanto o outro está no subdiretório do lar, eu.e., Documentos. Ambos os arquivos contêm o mesmo nome.

$ grep -r "coração"

Vamos dar uma olhada em outra mesma instância com um padrão de correspondência diferente dentro do comando Grep. Por isso, usamos o padrão "CSS" a ser pesquisado do sistema recursivamente.

$ grep -r “css”

Outra maneira é usar o sinal "*" para pesquisar em todas as pastas e subpastas. Então, procuramos o personagem simples “A” e o encontramos em todos os arquivos de texto do diretório doméstico e de suas subpastas.

$ grep -r "a" *

Vamos fazer uma pesquisa recursiva usando o comando grep, mas de uma maneira diferente. Estaremos pesquisando um padrão enquanto o texto nos arquivos não será exibido no terminal usando o sinalizador "-l" na instrução. Somente o nome ou caminho do arquivo será fornecido na saída que mostra que o padrão fornecido foi encontrado. Então, tentamos a mesma consulta com a adição da bandeira "-l" para procurar o padrão "CSS". Ele exibe os arquivos relacionados e seus caminhos na saída.

$ grep -r -l "css"

Pesquise com o caminho do diretório

Agora, veremos o funcionamento do comando recursivo grep no caminho do diretório dado. Então, teremos procurado três padrões diferentes dentro do subdiretório "Downloads" da pasta doméstico. O caminho para as pastas de downloads foi declarado na imagem dentro do comando Grep. Não temos nada em troca, pois o padrão não foi correspondido ou foi encontrado.

$ grep -r cdd/home/linux/downloads
$ grep -r css/home/linux/downloads
$ grep -r poeta/home/linux/downloads

Vamos procurar outro padrão "está" na pasta Downloads, utilizando a mesma instrução. Encontramos duas saídas para este padrão. A saída exibe os caminhos do arquivo junto com o texto. Ele também destacou o padrão correspondente, eu.e., "é".

$ grep -r is/home/linux/downloads

Pesquisamos outro padrão, "OK" na pasta de downloads e obtivemos apenas 1 saída em troca, pois ela só é comparada com um único arquivo.

$ grep -r ok/home/linux/downloads

O mesmo padrão "ok" foi pesquisado do subdiretório diferente desta vez, eu.e., Documentos. O comando grep não retornou nada, pois a pasta não contém nenhum arquivo com um padrão específico "ok" dentro dele.

$ grep -r is/home/linux/documentos

Você também pode pesquisar recursivamente o valor da string. Então, fornecemos o endereço IP como uma string e mencionamos o caminho. Este comando pesquisará todos os arquivos e pastas do diretório "etc" para pesquisar o padrão da string. A saída mostra um único resultado.

$ grep -r “192.168.10.1 ” /etc /

Pesquise vários padrões

Tínhamos olhado para os exemplos para procurar o padrão único usando a instrução grep recursiva. Agora, veremos o caminho para pesquisar vários padrões também recursivamente. Por isso, utilizamos o comando Grep junto com a bandeira "-rw". Indica que as múltiplas pesquisas tenham acontecido. Após essa bandeira, você pode mencionar o caminho também. Nós o usamos sem o caminho para pesquisar no diretório inicial e em suas subpastas. A bandeira "-e" foi usada aqui para indicar o padrão único. Você pode usar muitas bandeiras “-e” de acordo com o número de padrões que deseja pesquisar. Pesquisamos apenas dois padrões aqui usando “-e”. Encontramos os 4 arquivos na saída correspondidos. Três arquivos contêm o padrão "CSS" e 1 contém o padrão "ok" dentro.

$ grep -rw -e ok -e css

Você também pode utilizar o comando grep para pesquisar vários padrões dentro do arquivo específico. Para isso, você deve remover a bandeira “-rw” da consulta e adicionar bandeiras “-e” o quanto quiser. Mas você deve mencionar o nome do arquivo no final, como demonstrado abaixo. Ele exibe todo o texto do arquivo e destaca o padrão de correspondência.

$ grep -e "ótimo" -e "css" -e "é" -e "coração" novo.TXT

Pesquise com a bandeira "inclua"

A palavra -chave do sinalizador inclui foi usada para especificar os tipos de arquivo que estão sendo pesquisados ​​apenas. Nenhum outro arquivo será pesquisado. Então, no primeiro caso, não conseguimos nada.

$ grep -r -include = ”*txt” “ok”/home/linux/
$ grep -r -include = ”*txt” “new”/home/linux/

Dentro do nosso segundo caso, encontramos uma única saída.

Outro padrão, "CSS" foi usado para pesquisa recursiva e obteve três resultados, como demonstrado na imagem.

$ grep -r -include = ”*txt” “css”/home/linux/

Conclusão

A pesquisa recursiva foi demonstrada neste guia usando o comando Grep. O comando "Grep" usou muitas bandeiras para funcionar de maneira diferente ao fazer uma pesquisa recursiva, eu.e., "-R" e "Incluir". O tutorial também explica a pesquisa recursiva com e sem os caminhos de diretório fornecidos no comando Grep. Assim, este artigo contém um pacote de exemplos fáceis de fazer para que seus usuários aprendam pesquisas recursivas com mais facilidade.