Extraire un caractère d'une chaine
Résolu
fabinou
-
fabinou -
fabinou -
A voir également:
- Extraire un caractère d'une chaine
- Extraire une video youtube - Guide
- Caractère ascii - Guide
- Extraire le son d'une vidéo - Guide
- Caractère spéciaux - Guide
- Caractere speciaux - Guide
4 réponses
Salut,
en général si tu utilises une boucle en shell tu peux te dire que tu as zappé quelque chose ! ;-)
Il y a 2 commandes qui sont parfaites pour ton cas :
tr qui converti ou supprime les caractères choisis dans une chaîne
wc qui compte le nombre de caractère (ou de mots ou de lignes)
utilise man tr et man wc pou avoir plus d'infos.
La ligne de code qui va bien :
en général si tu utilises une boucle en shell tu peux te dire que tu as zappé quelque chose ! ;-)
Il y a 2 commandes qui sont parfaites pour ton cas :
tr qui converti ou supprime les caractères choisis dans une chaîne
wc qui compte le nombre de caractère (ou de mots ou de lignes)
utilise man tr et man wc pou avoir plus d'infos.
La ligne de code qui va bien :
n=$(echo $chaine | tr -cd '.' | wc -c)
Cool génial merci ! J'avais pensé à wc, mais je ne connaissais pas du tout la commande "tr", effectivement c'est parfaitement ce qu'il me fallait. =)
Au vu du man, cette commande n'a pas l'air d'être simple à appréhender au début mais ça devrait aller.
Pour l'histoire de la boucle, c'est également noté.
Tu aurais une piste pour le passage de chaque caractère en tableau du coup, c'est à dire récupérer chaque caractère un à un ? Car en fait, je vais plus tard devoir représenter ces 81 caractères sous forme d'une matrice de 9*9, elle même composée de 9 matrices de 3*3.
Au vu du man, cette commande n'a pas l'air d'être simple à appréhender au début mais ça devrait aller.
Pour l'histoire de la boucle, c'est également noté.
Tu aurais une piste pour le passage de chaque caractère en tableau du coup, c'est à dire récupérer chaque caractère un à un ? Car en fait, je vais plus tard devoir représenter ces 81 caractères sous forme d'une matrice de 9*9, elle même composée de 9 matrices de 3*3.
Y a de la doc par là : https://abs.traduc.org/abs-5.0-fr/ch09s02.html
bonne continuation !
PS : ton premier script ne fonctionnait pas car i ne prenait qu'une seule valeur dans la boucle i='seq 0 80' Il aurait fallu écrire for i in $(seq 0 80)
bonne continuation !
PS : ton premier script ne fonctionnait pas car i ne prenait qu'une seule valeur dans la boucle i='seq 0 80' Il aurait fallu écrire for i in $(seq 0 80)