Question

fichier.txt contient:

##w##

##wew##

en utilisant mac 10.6, bash, la commande:

cat file.txt | grep [[:alpha:]]* -o

sorties

rien. Je suis en train d'extraire le texte à l'intérieur des signes de hachage. Qu'est-ce que je fais mal?

Était-ce utile?

La solution

(Notez qu'il est préférable de la pratique dans ce cas pour passer le nom de fichier comme argument pour grep au lieu de redirigeant la sortie du chat à grep. grep PATTERN file au lieu de cat file | grep PATTERN)

Qu'est-ce que shell vous utilisez pour exécuter cette commande? Je pense que votre problème est que le shell interprète l'astérisque comme un joker et d'essayer de glob fichiers.

Essayez de citer votre modèle, par exemple grep '[[:alpha:]]*' -o file.txt.

Je l'ai remarqué que cela fonctionne très bien avec la version de grep qui est sur ma machine Linux, mais le grep sur mon Mac exige la commande grep -E '[[:alpha:]]+' -o file.txt.

Autres conseils

sed 's/#//g' file.txt

/SCRIPTS [31]> cat file.txt
##w##
##wew##

/SCRIPTS [32]>  sed 's/#//g' file.txt
w
wew

si vous avez bash> 3.1

while read -r line
do
  case "$line" in
   *"#"* )
        if [[ $line =~ "^#+(.*)##+$" ]];then
            echo ${BASH_REMATCH[1]}
        fi
  esac    
done <"file"
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top