ce script bash me permet d'obtenir les résultats attendus.
SAUF que je suis incapable de d'articuler la commande
sort -nr
pour me permettre les trier comme demandé dans l'exercice.
Avez vous des pistes?
je suis conscient que ma méthode n'est pas la plus optimale notamment sur ce qui concerne le traitement de chacune des lettres et les valeurs qui s'y rapportent.
ce script bash me permet d'obtenir les résultats attendus.
je ne crois pas. ton grep |wc -l compte le nombre de lignes sur lesquelles une lettre donnée est présente, et pas le nombre de fois qu'une lettre donnée apparaît dans le texte.
quant à ton "problème" avec sort... tu n'en es pas encore là. tu dois d'abord programmer la répétition de la commande grep|wc (corrigée) pour chaque lettre de l'alphabet
Validez la réponse utile « Un problème clairement exposé est à moitié résolu. » Pas de MP technique
"vous devez extraire le nombre de mots utilisant chaque lettre de l'alphabet de A à Z"
Donc je dois extraire le nombre de mot qui contienne la lettre "A" puis le nombre de mot qui contiennent la lettre "B" etc...
En photo, mon script et le résultat.
Comme les mots sont de 1 par ligne, il cherche le nombre de ligne où le caractère apparait.
Les chiffres sont les même que sur la capture écran du TP.
Pour la répétition,
J'ai essayé: "for les lettres contenues dans l'ensemble de A à Z, do chercher chacune des lettres et donner le nombre de ligne où elle se trouve.
echo"nombre - lettre" dans un fichier stat.txt
done
sort dans l'ordre décroissant le fichier stat.txt."
sans succès. j'ai l'impression l'ensemble {A..Z} n'est pas reconnu. Ensemble {A..Z} vu sur le forum, ce qui permet d'éviter de lister toutes les lettres et d'en louper une.
#!/bin/bash
clear
touch stat.txt
for lettre in {A..Z}
do nombre=`egrep [$lettre] | wc -l`
echo"$nombre - $ lettre">>stat.txt
done
sort -nr stat.txt
Bon, je suis débutant en programmation... mais je fais au max pour obtenir mon certificat
touch est inutile : le fichier est créé lors de la redirection.
ton script doit être exécutable pour que le shebang soit pris en compte, et que ce soit effectivement bash qui l'exécute, et donc que {A..Z} soit reconnu.
le fichier intermédiaire est inutile; tu peux piper le for vers sort.
- Edité par dantonq 8 octobre 2019 à 15:38:48
Validez la réponse utile « Un problème clairement exposé est à moitié résolu. » Pas de MP technique
le shebang est /bin/bash le script est exécutable le script est exécuté sans indication de shell, en indiquant son chemin
il n'y a pas de raison que {A..Z} ne soit pas reconnu.
par contre, grep a besoin d'un fichier auquel être appliqué la substitution de commande exécutera le résultat de la commande; ce n'est pas ce que tu veux ;
echo est inutile, et la substitution de commande c'est comme au-dessus et sort doit prendre la sortie de la boucle en entrée, par un pipe.
- Edité par dantonq 19 octobre 2019 à 20:45:34
Validez la réponse utile « Un problème clairement exposé est à moitié résolu. » Pas de MP technique
j'ai enfin un résultat qui prend forme! L'ensemble {A..Z} semble reconnu! mais je n'ai rien changé sur cette ligne...
voici le résultat:
./lng.sh: ligne 6: [A] : commande introuvable
./lng.sh: ligne 6: 0 : commande introuvable
sort: impossible de lire: A: Aucun fichier ou dossier de ce type
./lng.sh: ligne 6: [B] : commande introuvable
./lng.sh: ligne 6: 0 : commande introuvable
sort: impossible de lire: B: Aucun fichier ou dossier de ce type
./lng.sh: ligne 6: [C] : commande introuvable
./lng.sh: ligne 6: 0 : commande introuvable
sort: impossible de lire: C: Aucun fichier ou dossier de ce type
./lng.sh: ligne 6: [D] : commande introuvable
./lng.sh: ligne 6: 0 : commande introuvable
sort: impossible de lire: D: Aucun fichier ou dossier de ce type
./lng.sh: ligne 6: [E] : commande introuvable
./lng.sh: ligne 6: 0 : commande introuvable
sort: impossible de lire: E: Aucun fichier ou dossier de ce type
je continue de remanier mon fichier et je reviens! Que je bloque ou non.
la substitution de commande exécutera le résultat de la commande; ce n'est pas ce que tu veux
Validez la réponse utile « Un problème clairement exposé est à moitié résolu. » Pas de MP technique
TP final reprennez le controle à l'aide de linux
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Validez la réponse utile « Un problème clairement exposé est à moitié résolu. » Pas de MP technique
Validez la réponse utile « Un problème clairement exposé est à moitié résolu. » Pas de MP technique
Validez la réponse utile « Un problème clairement exposé est à moitié résolu. » Pas de MP technique
Validez la réponse utile « Un problème clairement exposé est à moitié résolu. » Pas de MP technique
Validez la réponse utile « Un problème clairement exposé est à moitié résolu. » Pas de MP technique
Validez la réponse utile « Un problème clairement exposé est à moitié résolu. » Pas de MP technique