Neste artigo, explicaremos o uso do utilitário grep com diferentes exemplos. Usaremos o Debian 10 para explicar os comandos e métodos mencionados neste artigo.
Instalando Grep
Grep vem instalado na maioria das distribuições Linux. No entanto, caso esteja faltando em seu sistema, você pode instalá-lo usando o seguinte método no Terminal:
$sudo apt-get install pegada
Usando Grep
Aqui está a sintaxe básica do comando grep. Ele começa com grep seguido por algumas opções e critérios de pesquisa e termina com o nome do arquivo.
$pegada [opções]PADRONIZAR[ARQUIVO...]
Pesquisar por arquivos
Para pesquisar um nome de arquivo em um diretório que contém uma string específica, você pode usar o grep da seguinte maneira:
$ls -a | pegada -eufragmento
Por exemplo, para pesquisar um nome de arquivo que contém uma string teste , o comando seria:
$ls-a| pegada-eutesteEste comando lista todos os arquivos que contêm a string teste .
Procure por uma string em um arquivo
Para pesquisar uma string em um arquivo específico, você pode usar a seguinte sintaxe de comando:
$pegadastring nome do arquivoPor exemplo, para procurar uma string teste em um arquivo chamado testfile1 , nós usamos o seguinte comando :
$pegadafuncionário testfile1A saída acima retornou a frase do testfile1 que contém a string empregado .
Procure por uma string em vários arquivos
Para pesquisar uma string em vários arquivos, você pode usar a seguinte sintaxe de comando:
$pegadastring filename1 filename2Por exemplo, para procurar um string employee em nossos dois arquivos testfile1 e testfile2, usamos o seguinte comando:
$pegadafuncionário testfile1 testfile2O comando acima listará todas as linhas que contêm a string employee de ambos os arquivos testfile1 e testfile2.
Você também pode usar um caractere curinga se todos os nomes de arquivo começarem com o mesmo texto.
$pegadastring nome do arquivo*Por exemplo, se tomarmos o exemplo acima em que nossos nomes de arquivo foram testfile1 e testfile2 , o comando seria:
$pegadaarquivo de teste do funcionário*Procure por uma string em um arquivo, ignorando a caixa da string
Na maioria das vezes, você encontrou isso quando pesquisa por algo usando grep, mas não recebe uma saída. Isso acontece devido a uma incompatibilidade de maiúsculas e minúsculas durante a busca por uma string. Como em nosso exemplo, se usarmos por engano Empregado ao invés de empregado , ele retornará nil, pois nosso arquivo contém a string empregado em letras minúsculas.
Você pode dizer ao grep para ignorar o caso da string de pesquisa usando o sinalizador –i após o grep da seguinte forma:
$pegada–I string filenameAo usar o sinalizador –i, o comando executará uma pesquisa sem distinção entre maiúsculas e minúsculas e retornará todas as linhas que contêm a string empregado nele sem levar em conta as letras estão em maiúsculas ou minúsculas.
Pesquise usando a expressão regular
Se usada corretamente, a expressão regular é um recurso muito eficaz no grep. Com o comando Grep, você pode definir uma expressão regular com uma palavra-chave inicial e final. Ao fazer isso, você não precisará digitar toda a linha com o comando grep. A sintaxe a seguir pode ser usada para esse propósito.
$pegadapalavra-chave inicial.*terminando o nome do arquivo de palavra-chavePor exemplo, para pesquisar uma linha em um arquivo chamado testfile1 que começa com a string this e termina com os dados da string, usamos o seguinte comando:
$pegadaisto.*data testfile1Irá imprimir toda a linha do testfile1 contendo a expressão (palavra-chave inicial this e dados da palavra-chave final).
Imprime um determinado número de linhas após / antes da string de pesquisa
Você também pode exibir o número específico de linhas em um arquivo antes / depois de uma correspondência de string junto com a própria string correspondida. A seguinte sintaxe pode ser usada para essa finalidade:
$pegada -PARA <N>string nome do arquivoEle exibirá um número N de linhas depois que a string for correspondida no arquivo especificado, incluindo a string correspondida.
Por exemplo, este é o nosso arquivo de amostra chamado testfile2 .
O seguinte comando irá mostrar a linha correspondente contendo a string empregado , junto com as 2 linhas depois dele.
$pegada-PARA2–I funcionário testfile2Da mesma forma, para exibir o número N de linhas antes da string correspondente em um arquivo específico, use a seguinte sintaxe:
$pegada -B <N>string nome do arquivoPara exibir o número N de linhas ao redor da string em um arquivo específico, use a seguinte sintaxe:
$pegada -C <N>string nome do arquivoDestacando a busca
Grep, por padrão, imprime as linhas correspondentes, mas não mostra qual parte da linha corresponde. Se você usar a opção –color com grep, ele mostrará onde as strings de usinagem aparecem em seu arquivo. Grep por padrão usa a cor vermelha para realçar.
A seguinte sintaxe pode ser usada para essa finalidade:
$pegadastring nome do arquivo--corContando o número de partidas
Se você quiser contar quantas vezes uma determinada palavra aparece em um arquivo específico, você pode usar o grep com a opção –c. Ele retorna apenas o número de correspondências, e não as correspondências em si. A seguinte sintaxe pode ser usada para essa finalidade:
$pegada–C string filenameEste é o nosso arquivo de amostra semelhante a:
A seguir está um exemplo de um comando que retornou o número de vezes que a palavra Arquivo apareceu em um arquivo chamado testfile3 .
Pesquisa invertida
Às vezes, você deseja realizar uma pesquisa reversa que exibe todas as linhas, exceto as que correspondem à entrada. Para fazer isso, basta usar o sinalizador –v seguido por grep:
$pegada–V string filenamePor exemplo, para exibir todas as linhas em um arquivo testfile3 que não contêm a palavra conta neles, usamos o seguinte comando:
$pegada–V account testfile3Usando Grep com outros comandos
Grep também pode ser usado para filtrar o resultado necessário da saída de diferentes comandos. Por exemplo, do lista instalada de apt saída do comando, você deseja encontrar apenas os pacotes que foram instalados automaticamente, você pode filtrar o resultado usando grep da seguinte forma:
$apto--instaladoLista| pegadaautomático
Da mesma forma, o lscpu fornece informações detalhadas sobre a CPU. Se você está interessado apenas nas informações sobre a arquitetura da CPU, pode filtrá-las usando o seguinte comando:
$lscpu| pegadaArquiteturaNeste artigo, descrevemos alguns exemplos que o ajudarão a entender os comandos grep e seu uso em diferentes condições. Ter um forte controle sobre o comando grep pode economizar muito tempo se você precisar examinar grandes configurações ou arquivos de log e folhear informações úteis neles.