aider à grep [[: alpha:]] * -o
Question
fichier.txt contient:
##w##
##wew##
en utilisant mac 10.6, bash, la commande:
cat file.txt | grep [[:alpha:]]* -o
rien. Je suis en train d'extraire le texte à l'intérieur des signes de hachage. Qu'est-ce que je fais mal?
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"