GNU/Linux >> Tutoriels Linux >  >> Linux

Comment supprimer toutes les lignes commentées ou les lignes avec un motif spécifique dans vim ?

Récemment, je faisais beaucoup d'édition de texte sur l'un de mes serveurs (pour une activité de maintenance) - où je devais optimiser la taille d'un fichier en supprimant tout ce qui avait un motif spécifique, parfois toutes les lignes commentées et parfois toutes les lignes qui ne contiennent pas un motif spécifique.

Par exemple, l'un de mes serveurs avait de nombreux comptes d'utilisateurs désactivés (lignes commentées dans le fichier /etc/passwd) - où je dois supprimer tous ces comptes désactivés (ceux commentés) à l'aide de vim. Voici ce que j'ai fait :

Remarque : Vous devrez le faire en mode commande – ESC et :

Si vous souhaitez supprimer toutes les lignes commentées d'un fichier , alors vous devrez supprimer les lignes commençant par '#'.

:g/#/d

(ou)

:g/^\#/d

Supposons que vous souhaitiez supprimer toutes les lignes qui correspondent/contiennent un motif spécifique – alors la commande est similaire à celle ci-dessus. Par exemple :

:g/somepattern/d

Si vous souhaitez supprimer toutes les lignes qui ne contiennent pas un modèle spécifique , disons laisser toutes les lignes commentées et supprimer le reste. Recherchez le symbole " !" dans la commande ci-dessous

:g!/#/d

La commande ci-dessus supprimera toutes les lignes qui ne commencent pas par '#'. Vous pouvez également utiliser la commande ci-dessous.

: v/#/d

Dans la commande ci-dessus, nous utilisons 'v' au lieu de 'g' et aucun '!' n'est requis.


Linux
  1. Comment supprimer toutes les lignes d'un fichier dans Vim

  2. Comment supprimer des fichiers avec une extension spécifique dans la ligne de commande Linux

  3. Comment supprimer tous les conteneurs Docker

  4. Comment ajouter une commande dans l'éditeur vim ?

  5. Comment supprimer tous les fichiers commençant par une certaine chaîne sous Linux

Comment supprimer une ligne dans Vim sous Linux

Comment supprimer un répertoire sous Linux

Comment supprimer des lignes dans Vim / Vi

Comment supprimer des fichiers avec une extension spécifique sous Linux

Comment supprimer des lignes d'un fichier à l'aide de la commande Sed

Comment supprimer tous les packages avec DNF dont aucun autre package ne dépend