Nedávno jsem na jednom ze svých serverů prováděl mnoho úprav textu (kvůli údržbě) – kde potřebuji optimalizovat velikost souboru odstraněním všech, které mají konkrétní vzor, někdy všechny řádky s komentovanými řádky a někdy všechny řádky, které neobsahují konkrétní vzor.
Například jeden z mých serverů měl spoustu zakázaných uživatelských účtů (komentované řádky v souboru /etc/passwd) – kde potřebuji všechny tyto deaktivované účty (komentované) odstranit pomocí vim. Udělal jsem toto:
Poznámka: Budete to muset udělat v příkazovém režimu – ESC a :
Pokud chcete odstranit všechny komentované řádky ze souboru , pak budete muset odstranit řádky začínající „#“.
:g/#/d
(nebo)
:g/^\#/d
Předpokládejme, že chceteodstranit všechny řádky, které odpovídají/obsahují konkrétní vzor – pak je příkaz podobný výše uvedenému. Například:
:g/somepattern/d
Pokud chcete odstranit všechny řádky, které neobsahují konkrétní vzor , řekněme nechat všechny komentované řádky a zbytek smazat. V níže uvedeném příkazu hledejte symbol „!“
:g!/#/d
Výše uvedený příkaz odstraní všechny řádky, které nezačínají znakem „#“. Případně můžete použít níže uvedený příkaz.
: v/#/d
Ve výše uvedeném příkazu používáme ‚v‘ místo ‚g‘ a není vyžadováno ‚!‘.