ZoneO-trucs pour Mandriva Linux

Effacer les lignes de commentaire dans un fichier texte

J'ai des fichiers texte avec des tonnes de commentaires. Comment s'en débarrasser en une seconde?

 
 
Démarrer la Konsole
Figure 1: Démarrer la Konsole

Cet article ressemble beaucoup a un post d'il y a quelques mois (Effacer les lignes vides avec sed), mais je pense qu'il peut tout de même être utile pour certains d'entre nous...

De temps en temps, il se peut que vous vouliez retirer toutes les lignes de commentaire d'un fichier texte. Il y a deux cas de figure

  • vos lignes de commentaire débutent par un symbole particulier,
  • vos commentaires sont sur les n premières lignes.

Effacer les lignes de commentaire débutant par un symbol particulier

Si vos lignes de commentaire débutent par le symbole #, voici la commande qui résoudra vos problèmes

sed '/^\#/d' monFichier > tt
mv tt monFichier

Et voici ce qui se passe

  • sed '/^\#/d' monFichier efface toutes les lignes débutant par # du fichier monFichier et envoie le résultat dans la console,
  • > tt redirige le résultat de le commande sed dans le fichier tt (ça s'appelle un pipe),
  • mv tt monFichier renomme le fichier tt en monFichier.

Si vos commentaires commencent par la lettre c et un espace, il faudra utiliser

sed '/^c\ /d' monFichier > tt
mv tt monFichier

Et ainsi de suite!

Effacer des lignes de commentaire en haut d'un fichier

Dans d'autres cas, il se peut que les premières lignes du fichier correspondent à des commentaires, sans symbole particulier pour les distinguer. Ne vous inquiétez pas, ce n'est pas très compliqué non plus... Par exemple, pour retirer les 3 premières lignes, il suffit d'utiliser

sed '1,3d' monFichier > tt
mv tt myFile

Et c'est tout!

Convertir plusieurs fichiers d'un seul coup...

Si vous avez une centaine de fichiers à traiter, il faut utiliser la commande foreach. Par exemple, si vous voulez retirer toutes les lignes débutant par # dans tous les fichiers terminant par l'extension .dat, il faut utiliser

foreach file (*dat)
sed '/^\#/d' $file > tt
mv tt $file
end

Et voilà, c'est terminé. Même si vous avez un millier de fichiers, ça ne prendra que quelques secondes!

03/2006
 
© ZoneO-soft - Contactez nous - Page d'accueil