GNU/Linux >> Znalost Linux >  >> Linux

Jak odstranit všechny komentované řádky nebo řádky se specifickým vzorem ve vimu?

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 ‚!‘.


Linux
  1. Jak odebrat všechny soubory ve složce kromě jednoho konkrétního souboru v systému Linux

  2. Jak zkombinovat všechny řádky, které končí znakem zpětného lomítka?

  3. Jak zobrazit konkrétní řádky souboru v příkazovém řádku Linuxu

  1. Jak odstranit všechny řádky souboru ve Vimu

  2. Jak odstranit všechny kontejnery Docker

  3. Jak přidat příkaz do editoru vim?

  1. Jak mohu spustit jiný příkaz, ale se stejnými argumenty?

  2. Jak odstranit všechny soubory začínající určitým řetězcem v Linuxu

  3. Jak mohu vytvořit soubor s určitou velikostí z příkazového řádku?