Respuestas:
Esto parece funcionar, pero no lo he pensado profundamente:
sed -e '/^[[:space:]]*#/d'
Puedes usar grep
para eso
grep -vh '^[[:space:]]*#' filename
Dado que, como presumo, está eliminando comentarios de algún archivo, también podría considerar eliminar las líneas vacías, lo que expande lo anterior a:
grep -vh '^[[:space:]]*\(#\|$\)' filename
awk
La solución es invertir la coincidencia de su patrón.
$> 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
Debería ser lo suficientemente bueno.
perl -ne 'print if ! /^\s*#/' ./text
Utilizando los datos de muestra publicados por ДМИТРИЙ МАЛИКОВ ...
$ grep -vPh '^\s*#' filename.txt | grep -Po '\w+'
elephant
zoo
penguin
Prefiero usar pcre con grep, así que uso el interruptor -P para grep (debe ser GNU grep). El segundo grep es azúcar puro para darte las palabras sin espacios en blanco. También "eliminaría" las líneas vacías.
awk '!/^ *#/' ./text
.