在 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”在同一行则不会被删除。