Como excluir uma palavra com grep
Índice:
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!