Eliminar linhas em um arquivo de texto que contenham uma string específica
Como eu usaria sed para excluir todas as linhas em um arquivo de texto que contenham uma string específica?
1652
3
Como eu usaria sed para excluir todas as linhas em um arquivo de texto que contenham uma string específica?
Para remover a linha e imprimir a saída de forma padrão:
Para modificar diretamente o arquivo - não funciona com BSD sed:
O mesmo, mas para o BSD sed (Mac OS X e FreeBSD) - não funciona com o GNU sed:
Para modificar diretamente o arquivo (e criar um backup) - funciona com BSD e GNU sed:
Existem muitas outras maneiras de apagar linhas com string específica além de `sed':
AWK
Ruby (1.9+)
Perl
Shell (bash 3.2 e posteriores)
GNU grep
E, claro,
sed
(imprimir o inverso é mais rápido do que a eliminação real):Você pode usar sed para substituir as linhas no lugar em um arquivo. No entanto, parece ser muito mais lento do que usar o grep para o inverso num segundo ficheiro e depois mover o segundo ficheiro sobre o original.
por exemplo
ou
O primeiro comando demora 3 vezes mais na minha máquina de qualquer maneira.