(modifié le 2 mai 2024 à 3:05)

Les fichiers de configuration sous GNU/Linux sont parfois ongs et il n'est pas facile de distinguer les lignes importantes de celles des commentaires, souvent plus nombreuses. C'est le cas par exemple de fichier de configuration de squid (proxy) qui comporte pas moins de 3500 lignes...

Voici comment afficher le contenu d'un fichier de configuration sans les lignes de commentaires, ce qui rend le fichier nettement plus lisible:

grep "^[^#*/;]" /etc/samba/smb.conf
egrep -v "^\s*(#|$)"

L'équivalent POSIX

grep -E -v '^(#|$|;)' /etc/samba/smb.conf
egrep -v "^[[:space:]]*(#|$)" /etc/samba/smb.conf


Voici une alternative avec sed :

# more /chemin/vers/fichier.conf | sed '/ *#/d; /^ *$/d'

Exemple avec le package ftp-proxy :

# more /etc/proxy-suite/ftp-proxy.conf | sed '/ *#/d; /^ *$/d'
[-Global-]
AllowMagicUser  yes
AllowTransProxy no
DestinationAddress      localhost
Group                   nogroup
LogDestination  /var/log/ftp-proxy/ftp-proxy.log
Port 2370
User                    nobody

Vous pouvez rediriger la sortie vers un fichier pour les mémoriser :

 # more /etc/proxy-suite/ftp-proxy.conf | sed '/ *#/d; /^ *$/d' > sanscommentaire.conf

Cette petite astuce est très utile si vous rédigez des documentations avec à l'intérieur des copies de fichiers de configuration à rallonge. Vos documentations et procédures seront plus concises et compréhensibles, surtout si en cas d'urgence. Croyez moi 🙂

Astuce trouvée chez l'excellent blog nixCraft

Et pour trier les lignes et trouver plus facilement la ligne que vous cherchez

cat /etc/proxy-suite/ftp-proxy.conf | grep "^[^#*/;]" | sed -r '/^( |\t|$)/ d' | sort

Source

Auteur : Mr Xhark

Fondateur du blog et passionné par les nouvelles techno, suivez-moi sur twitter