GNU/Linux >> Linux Esercitazione >  >> Linux

Come Grep Lines che non iniziano con "#" o ";"?

Voglio grep smb.conf e vedi solo le righe che non sono commentate.

Risposta accettata:

grep "^[^#;]" smb.conf

Il primo ^ fa riferimento all'inizio della riga, quindi le righe con commenti che iniziano dopo il primo carattere non verranno escluse. [^#;] indica qualsiasi carattere che non sia # o ; .

In altre parole, riporta le righe che iniziano con qualsiasi carattere diverso da # e ; . Non è lo stesso che segnalare le righe che non iniziano con # e ; (per il quale useresti grep -v '^[#;]' ) in quanto esclude anche vuoto righe, ma probabilmente è preferibile in questo caso poiché dubito che ti interessino le righe vuote.

Se desideri ignorare i caratteri vuoti iniziali, puoi cambiarlo in:

grep '^[[:blank:]]*[^[:blank:]#;]' smb.conf

o

grep -vxE '[[:blank:]]*([#;].*)?' smb.conf

Oppure

awk '$1 ~ /^[^;#]/' smb.conf

Linux
  1. Il comando Rm nello script Bash non funziona con la variabile?

  2. Linux – Ldd non trova il percorso, come aggiungere?

  3. Come utilizzare Grep per cercare un motivo che inizia con un trattino (-)?

  4. Come eseguire il grep con l'output a colori

  5. Contare il numero totale di corrispondenze con grep invece di quante righe corrispondono

Come cercare le pagine man di Linux (ad esempio con grep)

Come sottrarre righe (linee) con AWK

In che modo Linux gestisce gli script di shell?

Come grep le righe che hanno più di un numero specifico di caratteri speciali

Linee grep che iniziano con 1, ma non 10, 11, 100 ecc

Come funziona Kerberos con SSH?