Vim 删除包含单词 A 但不包含单词 B 的行

Vim 删除包含单词 A 但不包含单词 B 的行

在 vim 中,我需要找到所有包含一个单词但不包含另一个单词的行并将其删除。

在尝试弄清楚这一点时,我见过很多 :g、:g!和 :v 对话,但没有什么能给我所需要的,因为看起来我需要结合 :g 和 :v。

如果没有办法在 vim 中做到这一点,还有其他足够简单的方法吗?

答案1

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

应该可以解决问题。

根据评论-嗯,它对我有用:

=$ cat sample.txt 
word
another
word another

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

=$ cat sample.txt 
another
word another

如您所见,包含“word”的行已被删除,但如果“another”在同一行则不会被删除。

相关内容