Vim excluir linhas que contenham a palavra A, mas não a palavra B

2

No vim, preciso encontrar todas as linhas que contenham uma palavra, mas NÃO contenha outra palavra e exclua-as.

Eu já vi muitas: g,: g! e: v falar enquanto tenta descobrir isso, mas nada que me dê o que preciso, pois parece que preciso combinar os dois: g e: v.

Se não há uma maneira de fazer isso no vim, existe outra maneira fácil?

    
por digitaljoel 13.02.2013 / 23:24

1 resposta

2
:v/another/s/^.*word.*\n//

deve fazer o truque.

Com base no comentário - bem, funciona para mim:

=$ cat sample.txt 
word
another
word another

=$ vim -c ":v/another/s/^.*word.*\n//" -c ":wq" sample.txt 

=$ cat sample.txt 
another
word another

Como você pode ver as linhas com "palavra" foram removidas, mas não se "outra" estava na mesma linha.

    
por 13.02.2013 / 23:35

Tags