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