Voilà trois façons de procéder.
- Grep
- Sed
- Perl
- A lire aussi: Commentaire en bash
Grep
La 1ère à l'aide de "egrep" (ou "grep -E"):egrep -v '^(#|$)' /etc/samba/smb.confLà l'exemple se contente de ne pas afficher toutes lignes commençant par un dièse (#) ou par le caractère de contrôle de fin de ligne dollar ($).
grep -E -v '^(#|$)' /etc/samba/smb.conf
S'il s'avérait que le délimiteur de commentaires soit placé non pas en début de ligne mais en retrait (espace ou tabulation), ou que le fichier mêle d'autres caractères délimiteurs comme le point virgule (;), rien ne vous empêche d'embellir votre expression rationnelle comme suit :
grep -E -v '^(#|;|$|[ ]*#)' /etc/samba/smb.conf
Sed
La seconde à l'aide de "sed" :sed -e '/^[ ]*#/d' -e '/^$/d' /etc/samba/smb.confOn élimine en premier les lignes commençants par un espace ou un signe dièse, puis on élimine toutes les lignes vides.
Bien entendu comme dans l'exemple précédent vous pouvez étoffer votre commande en incluant d'autres motifs, comme le point virgule, ce qui donnerait :
sed -e '/^[ ]*#/d' -e '/^[ ]*;/d' -e '/^$/d' /etc/samba/smb.conf
Perl
La troisième à l'aide de "perl" :En fait il s'agit toujours des regex, c'est l'utilitaire qui change.
Qu'il s'agisse de grep, egrep, sed, python, perl, etc. c'est toujours la regex qui fait l'affaire.
Il nous reste seulement à étudier l'implémentation des regex et le moteur utilisé par les utilitaires.
A savoir par exemple qu'un moteur DFA - Deterministic Finite Automation - est plus rapide qu'un moteur NFA - Nondeterministic Finite Automation - .
En revanche le moteur NFA nous permet de mieux peaufiner et diriger la regex pour obtenir le résultat voulu, donc un environement de créativité qu'on ne trouve pas avec un moteur DFA.
perl -ne 'print unless /^\s*[;\$#]|^$/' fichier_configLes commandes sed et grep utilisent la syntaxe des expressions régulières. Vous pourrez trouver des compléments d'information pour vous familiariser avec cette notion à cette adresse :
phpreg
Source: http://www.commentcamarche.net/faq/3027-bash-afficher-un-fichier-sans-les-lignes-de-commentaires
Aucun commentaire:
Enregistrer un commentaire