Di recente stavo eseguendo molte modifiche al testo su uno dei miei server (per attività di manutenzione), dove ho bisogno di ottimizzare le dimensioni di un file rimuovendo tutto ciò che ha uno schema specifico, a volte tutte le righe commentate e talvolta tutte le righe che non contengono uno schema specifico.
Ad esempio, uno dei miei server aveva molti account utente disabilitati (righe commentate nel file /etc/passwd) – dove devo rimuovere tutti quegli account disabilitati (quelli commentati) usando vim. Ecco cosa ho fatto:
Nota: Dovrai farlo in modalità comando:ESC e :
Se desideri rimuovere tutte le righe commentate da un file , quindi dovrai rimuovere le righe che iniziano con '#'.
:g/#/d
(o)
:g/^\#/d
Supponi di voler rimuovere tutte le righe che corrispondono/contengono un pattern specifico – allora il comando è simile a quello sopra. Ad esempio:
:g/somepattern/d
Se desideri rimuovere tutte le righe che non contengono uno schema specifico , diciamo di lasciare tutte le righe commentate ed eliminare il resto. Cerca il simbolo '!' nel comando sottostante
:g!/#/d
Il comando precedente eliminerà tutte le righe che non iniziano con '#'. In alternativa, puoi utilizzare il comando seguente.
: v/#/d
Nel comando precedente, utilizziamo 'v' invece di 'g' e non è richiesto '!'.