Mostrar linhas antes e depois da partida via Grep

Show Lines Before After Match Via Grep



Grep tem sido amplamente usado em sistemas Linux ao trabalhar em alguns arquivos, pesquisar algum padrão específico e muito mais. Desta vez, estamos usando o comando grep para exibir as linhas antes e depois da palavra-chave correspondente usada em algum arquivo específico. Para este propósito, usaremos as sinalizações -A, -B e, -C em todo o nosso guia tutorial. Portanto, você deve executar cada etapa para um melhor entendimento. Certifique-se de ter o sistema Ubuntu 20.04 Linux instalado.

Em primeiro lugar, você deve abrir seu terminal de linha de comando do Linux para começar a trabalhar no grep. Você está atualmente no diretório Home do seu sistema Ubuntu logo após o terminal da linha de comando ter sido aberto. Portanto, tente listar todos os arquivos e pastas no diretório inicial do seu sistema Linux usando o comando ls abaixo e você obterá todos. Você pode ver, temos alguns arquivos de texto e algumas pastas listadas nele.







ls



Exemplo 01: Usando ‘-A’ e ‘-B’

A partir dos arquivos de texto mostrados acima, daremos uma olhada em alguns deles e tentaremos aplicar o comando grep a eles. Vamos abrir o arquivo de texto one.txt primeiro usando o popular comando cat abaixo:



$gatoone.txt





Veremos primeiro algumas correspondências de palavras específicas neste arquivo de texto usando o comando grep conforme abaixo. Estamos procurando pela palavra we no arquivo de texto one.txt usando a instrução grep. A saída mostra duas linhas do arquivo de texto contendo nós.

$pegadanós um.txt



Portanto, neste exemplo, mostraremos as linhas antes e depois da correspondência de palavra específica em alguns arquivos de texto. Assim, usando o mesmo arquivo de texto one.txt, combinamos a palavra we enquanto exibíamos as 3 linhas anteriores a ela, conforme mostrado abaixo. A bandeira -B significa Antes. A saída mostra apenas 2 linhas antes da linha da palavra específica porque o arquivo não tem mais linhas antes da linha de uma palavra específica. Também mostra as linhas que contêm aquela palavra específica.

$pegada–B3nós um.txt

Vamos usar a mesma palavra-chave we deste arquivo para exibir as 3 linhas após a linha que contém a palavra we. A bandeira -A apresenta o Depois. A saída novamente mostra apenas 2 linhas porque não possui mais linhas no arquivo.

$pegada-PARA3nós um.txt

Portanto, vamos usar uma nova palavra-chave para ser correspondida e exibir as linhas ou linhas antes e depois da linha em que ela se encontra. Portanto, temos usado a palavra pode ser correspondida. Os números das linhas são iguais neste caso. As 3 linhas após a palavra correspondida podem ter sido exibidas abaixo usando o comando grep.

$pegada-PARA3pode one.txt

Você pode ver que a saída é exibida antes das linhas de uma palavra correspondida usando a palavra-chave pode. Em contraste, ele mostra apenas duas linhas antes da linha da palavra correspondida porque não há mais linhas antes dela.

$pegada–B3pode one.txt

Exemplo 02: Usando ‘-A’ e ‘-B’

Vamos pegar outro arquivo de texto, two.txt, do diretório inicial e exibir seu conteúdo usando o comando cat abaixo.

$gatotwo.txt

Vamos exibir 5 linhas antes da palavra Most do arquivo two.txt usando o comando grep. A saída mostra 5 linhas antes da linha conter uma palavra específica.

$pegada–B5Most two.txt

O comando grep para mostra as 5 linhas após a palavra Most do arquivo de texto two.txt foi fornecido abaixo.

$pegada-PARA5Most two.txt

Vamos mudar a palavra-chave a ser pesquisada. Usaremos de como uma palavra-chave a ser correspondida desta vez. Exibir as 2 linhas antes da palavra de do arquivo de texto two.txt pode ser feito usando o comando grep abaixo. A saída mostra duas linhas para a palavra-chave de porque ela vem duas vezes no arquivo. Portanto, a saída contém mais de 2 linhas.

$pegada–B2de two.txt

Agora, exibindo as 2 linhas do arquivo two.txt após a linha que contém a palavra-chave de pode ser feito usando o comando abaixo. A saída novamente exibe mais de 2 linhas.

$pegada-PARA2de two.txt

Exemplo 03: Usando ‘-C’

Outro sinalizador, -C foi usado para exibir as linhas antes e depois da palavra correspondida. Vamos exibir o conteúdo do arquivo one.txt usando o comando cat.

$gatoone.txt

Escolhemos a sociedade como uma palavra-chave a ser correspondida. O comando grep abaixo exibirá as 2 linhas antes e 2 linhas depois da linha que contém a palavra sociedade. A saída mostra uma linha antes da linha da palavra específica e 2 linhas depois dela.

$pegada–C2sociedade one.txt

Vamos ver o conteúdo do arquivo two.txt usando o comando cat abaixo.

$gatotwo.txt

Nesta ilustração, estamos usando poemas como uma palavra-chave para correspondência. Portanto, execute o comando abaixo para isso. A saída mostra duas linhas antes e duas linhas depois da palavra correspondida.

$pegada–C2poemas two.txt

Vamos usar mais uma palavra-chave do arquivo two.txt para fazer a correspondência. Estamos consumindo a natureza como palavra-chave neste momento. Portanto, tente o comando abaixo enquanto usa -C como um sinalizador com a palavra-chave nature do arquivo two.txt. Desta vez, a saída tem mais de duas linhas na saída. Como o arquivo contém a palavra natureza mais de uma vez, essa é a razão por trás disso. A palavra-chave nature, que vem primeiro, tem duas linhas antes e duas linhas depois dela. Enquanto a segunda corresponde à mesma palavra-chave, nature tem duas linhas antes dela, mas não há linhas depois dela porque está na última linha do arquivo.

$pegada–C2poemas two.txt

Conclusão

Temos sucesso em exibir as linhas antes e depois da palavra específica ao usar a instrução grep.