vim удаляет все строки, содержащие X или более слов - PullRequest
0 голосов
/ 08 июня 2018

Я ищу команду vim, которая сопоставляет и удаляет все строки, содержащие 4 или более слов, где слова разделяются разделителем, в данном случае символом пробела.

До

один два три четыре пять

один два три четыре

один два три

После

один два три

Ответы [ 2 ]

0 голосов
/ 09 июня 2018
:%s/\v(\w+ \w+ \w+)\zs.*//g

\v ................. very magic (avoids backslashing everything)
(\w+ \w+ \w+) ...... a group of three words
\zs.* .............. starts considering what that comes after
0 голосов
/ 08 июня 2018

Пробудитесь на помощь!

awk 'NF < 4' foo.txt > output.txt

Использование фильтра Vim, :!, команда (см. :h :range!):

:%!awk 'NF < 4'

Или чистый Vim с командой :globalи :delete (см. :h :g & :h :d):

:g/\s.*\s.*\s/d_
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...