Risposte:
Questo sembra funzionare, ma non ci ho pensato molto:
sed -e '/^[[:space:]]*#/d'
Puoi usarlo grep
per questo
grep -vh '^[[:space:]]*#' filename
Poiché, come presumo, stai eliminando i commenti da alcuni file, potresti anche prendere in considerazione la rimozione di righe vuote, che espande quanto sopra a:
grep -vh '^[[:space:]]*\(#\|$\)' filename
awk
la soluzione è di invertire la corrispondenza con il modello.
$> cat ./text
elephant
# Master socket provides access to userdb information. It's typically
zoo
#ok
penguin
# !
$> awk '!/^(\ )*#/ {print $0}' ./text
elephant
zoo
penguin
awk '/^ *#/{next}1' file
dovrebbe essere abbastanza buono.
perl -ne 'print if ! /^\s*#/' ./text
Utilizzando i dati di esempio pubblicati da ДМИТРИЙ МАЛИКОВ ...
$ grep -vPh '^\s*#' filename.txt | grep -Po '\w+'
elephant
zoo
penguin
Preferisco usare pcre con grep, quindi uso l'opzione -P per grep (deve essere GNU grep). Il secondo grep è lo zucchero puro per darti le parole senza spazi bianchi. "Rimuovere" anche le righe vuote.
awk '!/^ *#/' ./text
.