Vorrei stampare il contenuto di un file, ma tutte le righe che iniziano con # Voglio ignorare. Stavo provando alcune cose con grep e awk, ma continuava a stampare l'intero file, o semplicemente stampavo le righe a partire da #. Potrei darmi una spinta nel modo giusto, o un comando grep/awk che stamperebbe anyline nel file che non inizia con #.Linux, Stampa tutte le righe in un file, NON iniziando con
8
A
risposta
16
Utilizzare l'opzione -v
di grep
a negare la condizione:
grep -v '^#' file
+1
Grazie mille variare! – Dasoren
5
È possibile utilizzare l'operatore di !
:
awk '!/^ *#/ { print; }'
Questo nega il risultato della partita. Ho anche incluso righe che iniziano con spazi e poi #, ma puoi personalizzare la regex come preferisci.
4
Si potrebbe utilizzare grep per escludere tutte le righe che iniziano con #
utilizzando l'opzione
grep -v '^#' filename
-v
Se sei un fan di sed
:
sed '/^#/d' filename
0
Ciò consentirebbe anche di lasciare fuori le linee con spazi bianchi prima della #
:
awk '$1!~/^#/' file
o
grep -v '^[[:blank:]]*#' file
0
Qui è il modo in cui grep PCRE,
grep -P '^(?!#)' file
'-v grep "^ #" file.txt' –
http://unix.stackexchange.com/questions/60994/how-to-grep-lines-which-does-not-begin-with-or –