Como excluir uma palavra com grep

Índice:

Anonim

A ferramenta de linha de comando grep é extremamente útil para pesquisar dados de texto em busca de linhas e trechos que correspondam a uma string, caractere, palavra ou expressão regular definida. Embora a maioria dos usos de grep seja para classificar dados para correspondências de sintaxe, e se você quiser excluir uma palavra ou string com grep? Excluir correspondências de linha com grep é tão útil quanto encontrar e imprimir correspondências em grep, então vamos abordar como excluir correspondências de string e excluir palavras com grep.

Obviamente, você vai querer ter alguma experiência em linha de comando e exposição ao grep para achar isso útil. Se você quiser acompanhar, pode abrir o aplicativo Terminal e experimentar você mesmo. Como o grep é um utilitário agnóstico do sistema operacional, você pode usar o truque de exclusão no Mac OS, Linux, unix ou qualquer outro que use o grep.

Como excluir uma única palavra com grep

A maneira mais simples de excluir linhas com uma correspondência de string ou sintaxe é usando grep e o sinalizador -v.

Por exemplo, digamos que estamos usando cat para imprimir um arquivo na linha de comando, mas queremos excluir todas as linhas que incluem o termo “ThisWord”, então a sintaxe seria a seguinte:

"

cat example.txt | grep -v EstaPalavra"

A saída será o arquivo de texto example.txt, mas excluindo qualquer linha que contenha uma correspondência de string com “EstaPalavra”.

Você também pode usar grep diretamente em arquivos e excluir correspondências de linha com base em palavras ou sintaxe, assim:

"

grep -v ThisWord>"

Use o que funcionar melhor para seu fluxo de trabalho específico.

Como excluir várias strings ou palavras com grep

Agora que você sabe como excluir correspondências para uma única palavra, a próxima pergunta óbvia é sobre a exclusão de várias palavras com grep. Isso é igualmente simples e existem algumas maneiras diferentes de fazer isso usando o sinalizador -v e o sinalizador -e.

Primeiro, vamos pegar o exemplo acima de usar cat em um arquivo canalizado para grep e excluir quaisquer linhas que correspondam a duas palavras; “Palavra1” e “Palavra2”, ficaria assim:

"

cat example.txt | grep -v -e Palavra1 -e Palavra2"

Qualquer linha que contenha “Palavra1” ou “Palavra2” será excluída dos resultados impressos.

Você também pode usar grep diretamente em arquivos como antes:

"

grep -v -e Palavra1 -e Palavra2 exemplo.txt"

Outra abordagem é separar o que excluir com grep usando um pipe para separar cada correspondência, assim:

"

grep -Ev palavra1|palavra2 exemplo.txt"

Se você testar qualquer uma dessas opções em um arquivo de texto de exemplo, descobrirá que a saída é idêntica, independentemente da abordagem adotada, cada uma excluindo linhas que incluem as frases, sintaxe, palavras ou correspondência de texto.

Ótimo, mostre-me um exemplo útil de exclusão de dados com grep!

Para um exemplo prático que usuários avançados de Mac podem achar útil, podemos usar a exclusão grep ao imprimir e consultar o histórico da linha de comando para encontrar comandos executados anteriormente para encontrar correspondências padrão, mas excluindo algumas strings padrão selecionadas do resultado.

No exemplo aqui, imprimiremos o histórico de comandos para correspondências de string padrão, mas excluiremos qualquer correspondência relacionada ao iTunes conforme definido por “com.apple.itunes”:

"

history |grep defaults write |grep -v -e com.apple.itunes"

Portanto, se você estiver acompanhando, isso relatará todas as execuções históricas do comando “defaults write”, mas excluindo tudo o que pertence ao aplicativo iTunes. Legal né?

Se você tiver algum uso particularmente útil para excluir correspondências com grep, compartilhe-o conosco nos comentários abaixo! E se você gostou deste artigo, certamente gostaria de navegar por nossos muitos artigos de linha de comando aqui, onde há muito mais para aprender!

Como excluir uma palavra com grep