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