Como usar o grep recursivamente?

Como usar o grep recursivamente?

O comando Grep é usado para pesquisar texto de arquivos. É um padrão versátil que chama o grep com -r. -R Opção Pesquisar arquivos de pesquisa recursivamente dos subdiretos, a partir do diretório atual. O comando é executado a partir do diretório de nível superior. Por exemplo /home /abc etc. Grep é uma ferramenta para obter dependências enquanto se move de um host para outro. Se não mencionarmos um diretório no comando, Grep pesquisará o diretório de trabalho atual. Para executar o grep recursivamente, há três argumentos que tiramos da página do homem de Grep.

$ Man Grep

-incluir é usado para uma correspondência exata no arquivo que pode ser arquivos presentes no diretório ou por padrão. -r implica o nome do diretório, como descrito anteriormente, se nenhum caminho for definido no comando, o diretório atual é considerado. Segue apenas um link simbólico. -R é bem diferente de -r porque lê todos os arquivos, não apenas os simbolicamente definidos.

Sintaxe

Grep -r “padrão” /caminho /caminho /

"Path" é um "caminho do diretório". E o padrão é uma palavra ou uma string que você deseja pesquisar.

Pré -requisito

Para entender a função recursiva grep, você precisa ter um sistema operacional Linux. Após a instalação, você configurará o Linux, fornecendo um nome de usuário e senha. Depois de fazer isso, você obterá privilégios para acessar todas as aplicações nesse sistema operacional.

Todos os arquivos no Linux

Este comando ajudará você a pesquisar todos os nomes dos arquivos nos diretórios do seu sistema. Como -l trabalha para fornecer apenas os nomes de arquivos, -r ajudará a pesquisar simbolicamente onde quer que a palavra exigida esteja presente, será a saída. Enquanto "aqsa" é a palavra que queremos procurar. Este comando está sem caminho para o diretório porque aqui, queremos todos os nomes de arquivos possíveis no sistema. Se fornecemos um caminho, o processo de busca terá limitações.

$ grep -r -l “aqsa”

Exemplo simples

Para entender o dilema da recursividade com a ajuda do caminho, introduzimos um exemplo simples para orientar o usuário. Como mostrado no comando abaixo, "versátil" é uma palavra que queremos pesquisar. Seguindo a palavra, há um diretório no qual desejamos classificar. Ele mostra o nome do arquivo com o diretório e o texto inteiro dentro do arquivo. -r também mostra os arquivos binários.

$ grep -r versátil /home /aqsayasin

Pesquisar recursivamente em todos os diretórios e subdiretos

Como todos estamos familiarizados com a funcionalidade de "*" no sistema de busca. Isso implica classificar em todos os arquivos. Portanto, o comando exibirá os respectivos dados de todos os arquivos. A palavra "casa" deve ser pesquisada recursivamente usando a declaração Grep.

$ grep -r “house” *

Ele mostra os nomes de arquivos e o texto interior, destacando a palavra pesquisada, indicando que existe uma correspondência. Apenas um único arquivo de texto continha essa palavra, que é mostrada na linha resultante.

Grep recursivamente para uma corda

Ao contrário dos exemplos acima, Grep funciona em uma string no diretório específico. / etc/ é o diretório de comando que significa que a pesquisa será através deste diretório, o endereço IP de um computador. Suas informações são salvas no diretório, tendo nomes de arquivos presentes no diretório/etc/ppp/. A opção é o nome de uma pasta específica. Este comando lerá todos os arquivos no diretório especificado.

$ grep -r “192.168.1.5 ” /etc /

Os nomes do arquivo na saída podem ser suprimidos com a ajuda da opção-h. O comando é o seguinte.

$ grep -h -r "192.168.1.5 " /etc /

Ambos os separadores podem ser escritos como -h -r em um comando.

Pesquise recursivamente sem um diretório

A pesquisa recursiva também pode ser feita sem usar um diretório simplesmente pesquisando uma palavra com uma única palavra.

$ grep -r esposa

A palavra "esposa" é pesquisada em todos os diretórios automaticamente porque, quando não há diretório mencionado, o processo de pesquisa prosseguirá em todos os arquivos e diretórios do sistema. Também incluirá arquivos binários junto com os arquivos de texto. O endereço do arquivo e os nomes dos arquivos são mostrados no primeiro. Enquanto o texto dentro do arquivo é exibido. Não apenas o texto simples, mas também o comando grep aplicado no texto do arquivo, é mostrado, i.e., grep 'eu sou uma esposa de casa'.

Grep exato múltiplos padrões

A pesquisa de vários métodos também é um recurso obtido através do comando Grep. "-Rw" é usado para explorar a correspondência específica. "-E" é usado para adicionar mais de um padrão no comando. O caminho do diretório é mencionado para torná -lo conveniente para o sistema pesquisar. Arquivos binários são excluídos porque o limite é introduzido na adição de um diretório no comando. A saída contém o nome do diretório de arquivos e o nome do arquivo. Além disso, o texto dentro do arquivo é exibido.

$ grep -rw '/home/aqsayasin/'

As palavras pesquisadas são destacadas no texto do arquivo. Ambos os termos pesquisados ​​precisam estar presentes em um único arquivo. Existe uma probabilidade da existência de palavras em diferentes arquivos, como mostrado na saída.

Grep recursivamente usando - -include

"-Include" corresponde ao padrão de arquivo fornecido e funciona efetivamente, pois também acelera o processo de pesquisa, que funciona a maioria dos arquivos. Aqui, ele não traz binários ou compilados, ou arquivos de imagem nele. A extensão do arquivo é usada para adicionar limitações ao comando. O diretório é mencionado para trazer a saída necessária. A palavra -chave incluída é bastante avançada no grep em comparação com outras funcionalidades.

$ grep -r --include = "*txt" "irmã" /home /aqsayasin

Conclusão

Neste artigo, explicamos cada exemplo para demonstrar o uso da função recursiva grep. Uma função recursiva é usada para pesquisar com limitações e precisamente em todos os diretórios no sistema. Se um diretório não estiver presente, o diretório atual será considerado por padrão.