Ich möchte smb.conf
grep und sehe nur unkommentierte Zeilen.
Akzeptierte Antwort:
grep "^[^#;]" smb.conf
Der erste ^
bezieht sich auf den Zeilenanfang, daher werden Zeilen mit Kommentaren, die nach dem ersten Zeichen beginnen, nicht ausgeschlossen. [^#;]
bedeutet jedes Zeichen, das nicht #
ist oder ;
.
Mit anderen Worten, es meldet Zeilen, die mit einem anderen Zeichen als #
beginnen und ;
. Es ist nicht dasselbe wie das Melden von Zeilen, die nicht mit #
beginnen und ;
(wofür Sie grep -v '^[#;]'
verwenden würden ), indem es auch leer ausschließt Zeilen, aber das ist in diesem Fall wahrscheinlich vorzuziehen, da ich bezweifle, dass Sie sich für leere Zeilen interessieren.
Wenn Sie führende Leerzeichen ignorieren möchten, können Sie es ändern in:
grep '^[[:blank:]]*[^[:blank:]#;]' smb.conf
oder
grep -vxE '[[:blank:]]*([#;].*)?' smb.conf
Oder
awk '$1 ~ /^[^;#]/' smb.conf