Réponses:
Cela semble fonctionner, mais je n'y ai pas longuement réfléchi:
sed -e '/^[[:space:]]*#/d'
Vous pouvez utiliser grep
pour cela
grep -vh '^[[:space:]]*#' filename
Comme, comme je le suppose, vous supprimez les commentaires d'un fichier, vous pouvez également envisager de supprimer les lignes vides, ce qui étend ce qui précède à:
grep -vh '^[[:space:]]*\(#\|$\)' filename
awk
la solution consiste à inverser la correspondance de votre motif.
$> 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
devrait être assez bon.
perl -ne 'print if ! /^\s*#/' ./text
En utilisant les données d'exemple publiées par ДМИТРИЙ МАЛИКОВ ...
$ grep -vPh '^\s*#' filename.txt | grep -Po '\w+'
elephant
zoo
penguin
Je préfère utiliser pcre avec grep donc j'utilise le commutateur -P pour grep (doit être GNU grep). Le deuxième grep est du sucre pur pour vous donner les mots sans espace blanc. Cela "supprimerait" également les lignes vides.
awk '!/^ *#/' ./text
.