Kommentare entfernen
Aus Gentoo Linux Wiki
| Terminals / Shells • X • Portage • System • Dateisysteme • Kernel • Netzwerk• Sonstiges • alphabetischer Tipp Index |
Inhaltsverzeichnis |
[Bearbeiten] Vorwort
Ich war es leid, bei Konfigurationsdateien ständig die Kommentarzeilen von den wirklichen Optionen zu trennen, wenn ich nach einer bestimmten Einstellung suchen muss. Auch wenn man seine Konfiguration hilfesuchend an eine Mailingliste oder ein Forum senden möchte, stören die Kommentare mehr als dass sie nützen, machen die Konfiguration unübersichtlich und brauchen nur unnötig Speicherplatz auf den Servern.
[Bearbeiten] Skript zum Entfernen von Kommentaren
Also habe ich ein kleines Shellscript namens confcat geschrieben, das die Kommentarzeilen einer konfigurationdatei weglässt und nur den wichtigen Teil anzeigt:
#!/bin/bash # Code to cat a config file removing all comments and blank lines. grep -vh '^#' "$@" | grep -v '^$'
Statt dem obigen command sollte man eventuell das Folgende verwenden, damit auch Kommentare entfernt werden, die eingerückt sind. Ausserdem entfernt obiges auch nicht alle Leerzeilen, nämlich nicht die, die mindestens ein Leerzeichen am Zeilenanfang enthalten. Auch das erledigt das folgende Command:
grep -vh '^[ ]*#' "$@" | grep -v '^[ ]*$'
Dies muss man lediglich in einer Datei namens confcat speichern, die im $PATH ist (z.B. ~/bin oder /usr/local/bin) und diese Datei dann ausführbar machen.
Ausführbar machen:
chmod 755 /pfad/zu/confcat
[Bearbeiten] Beispielanwendungen
Benutzen kann man es wie folgt:
confcat /pfad/zur/konfigurationsdatei
Das Skript löscht bei der Ausgabe Zeilen, die mit einem # beginnen und leere Zeilen weg.
Wie viel das wirklich bringt, zeigen die folgenden Vergleiche:
$ confcat /etc/make.conf | wc -l
9
$ cat /etc/make.conf | wc -l
156
$ confcat /etc/X11/XF86Config | wc -l
82
$ cat /etc/X11/XF86Config | wc -l
462
$ confcat /etc/mutt/Muttrc | wc -l
19
$ cat /etc/mutt/Muttrc | wc -l
3690
$ confcat /usr/src/linux/.config | wc -l
200
$ cat /usr/src/linux/.config | wc -l
1119
Und noch ein tatsächliches Beispiel, wenn ich z.B. die /etc/make.conf anzeigen lasse:
$ confcat /etc/make.conf
USE="-* x86 crypt berkdb pam ncurses readline ssl tcltk tcpd X mmx xml2 \
truetype java gtk jpeg tiff png python 3dfx voodoo3 opengl imap apache2 \
postgres sasl"
CHOST="i686-pc-linux-gnu"
CFLAGS="-O3 -march=pentium3 -fprefetch-loop-arrays -funroll-loops -pipe"
CXXFLAGS="${CFLAGS}"
PORTDIR_OVERLAY="/usr/local/portage"
GENTOO_MIRRORS="http://www.mirror.ac.uk/sites/www.ibiblio.org/gentoo/"
SYNC="rsync://rsync.uk.gentoo.org/gentoo-portage"
Ich hoffe, jemand findet das auch nützlich. :)
[Bearbeiten] Alternativen
Das Entfernen von Kommentaren geht auch ein wenig einfacher:
egrep -v "^#|^$" [filename]
oder:
cat $DATEINAME | sed 's/#.*//;/^ *$/d'
Um zum Beispiel die Kommentare und Leerzeilen aus der /etc/make.conf zu entfernen gibt man folgendes ein:
cat /etc/make.conf | sed 's/#.*//;/^ *$/d'
