Чи існує протилежність: g in vim?


10

Я знаю, як зробити щось із кожного рядка, який відповідає шаблону, використовуючи :g. Чи є спосіб зробити щось до кожного рядка, що не відповідає шаблону?

Наприклад, припустимо, я хочу видалити кожен рядок, який не відповідає / foo /. Я можу зробити щось на кшталт:

:G/foo/d

( :Gне протилежне :g, але саме це я шукаю)

Будь-які ідеї?


2
miv ni g :.
tilb

Відповіді:


17

Я думаю, що в VIM існує інверсія,

:g!/foo/d

або, як grepкоманда (нижче),

:v/foo/d

Якщо ви готові перейти до підказки оболонки,

grep -v foo filename.txt > new.txt

зробимо це

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.