テキストなしですべての行のvim検索逆検索を行う方法


18

grepを使用すると、grep -v "my search"を実行して、 "my search"なしですべての行を取得できます。

sedを使用すると、 '/ baz /!s / foo / bar / g'をsedして、行のテキストをbazなしで置き換えることができます

同じことを行う方法はありますか。そしてそれは可能ですが、「s ///」構文はありません。「/」検索構文のみを使用します。

回答:


29
:g/pattern/

パターンが見つかったすべての行に一致します。

:v/pattern/

逆を行います。詳細:h globalを参照してください。

次のように使用できます。

:v/pattern/norm Ipattern not found - <CR>

「pattern not found-」を「pattern」がないすべての行に追加する、または

:v/pattern/s/nrettap/pattern

「パターン」を持たないすべての行で「nrettap」を「パターン」に置き換えます。

考案された例、はい。


私は「nrettap」に笑いました。
アンクルゼイフ


1

:v commandEditの使用パターンに一致しない行を見つける従来のアプローチは、:vコマンドを使用することです

:v/Warning/p

実際の検索を開始する前に、関係のない行をできるだけ多く除外する大きなログファイルを使用する場合、ファイルを一時的な名前で保存し、一致しないすべての行を削除するのが賢明です。

:sav junk.log
:v/warning/d

「警告」と一致しないすべての行を削除して、元のファイルのクローンを編集しているので、自由に編集できます。

参照:https : //vim.fandom.com/wiki/Search_for_lines_not_taining_pattern_and_other_helpful_searches

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.