GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie Grep-Zeilen, die nicht mit „#“ oder „;“ beginnen?

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

Linux
  1. Wie gzip ich nur, wenn Thesqldump keinen Fehler macht?

  2. Rm-Befehl im Bash-Skript funktioniert nicht mit Variablen?

  3. Zählen der Gesamtzahl der Übereinstimmungen mit grep statt nur wie viele Zeilen übereinstimmen

  4. So subtrahieren Sie Zeilen (Zeilen) mit AWK

  5. Wie geht Linux mit Shell-Skripten um?

So durchsuchen Sie Linux-Manpages (z. B. mit grep)

Wie grep Zeilen, die mehr als eine bestimmte Anzahl von Sonderzeichen enthalten

Grep-Zeilen beginnend mit 1, aber nicht 10, 11, 100 usw

Wie funktioniert Kerberos mit SSH?

Wie bekomme ich Zeilen, die eine Zeichenfolge in einer Datei enthalten?

Wie kann man einen Telnet-Client mit rlwrap beenden, da ^] nicht funktioniert?