Comment créer un script qui trie des lignes

Fermé
Nad - 24 juil. 2015 à 06:58
nihad** Messages postés 3 Date d'inscription vendredi 24 juillet 2015 Statut Membre Dernière intervention 24 juillet 2015 - 24 juil. 2015 à 21:54
Bonjour,

comment créer un script qui affiche la valeure qui est supérieur a 10, et ce dans un fichier texte: fic.txt.
le contenu de ce fichier est le suivant

le premier:15
le deuxieme: 22
le troisieme :5
le quatrieme :7
Merci!
Je suis débutante en cette matiére (je suis une formation en ce temps-ci-;)

A voir également:

3 réponses

mamiemando Messages postés 33446 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 20 décembre 2024 7 812
Modifié par mamiemando le 24/07/2015 à 09:54
Tu comprendras aisément que si on te donne une réponse clé en main, ce n'est pas comme ça que tu vas progresser dans ta formation. Donc à part te dire quoi regarder et te laisser chercher un peu je ne vois pas trop quelle est la meilleure approche...

De plus l'énoncé est pas clair. Tu dis "la valeur supérieure à 10" et dans ton exemple il y en a deux (12 et 22).

Donc ensuite voici la manière dont je le ferais : regarde la commande grep ou un homologue, par exemple egrep. Une fois que tu auras compris le rôle de l'option -o et comment extraire un entier, tu auras éliminé de chaque ligne ce qui ne nous intéresse pas ("le premier", "le deuxième" etc...) de sorte à obtenir :

12
22
5
7


Cette commande va ressembler à quelque chose du genre :

egrep -o ton_motif /home/toto.fic.txt


... en remplaçant ton_motif par la bonne expression régulière.

Ensuite tu peux faire un test sur une valeur et si elle vérifie ce test, l'écrire avec echo.

(mando@velvet) (~) $ test 7 -eq 7 && echo ":)"
:)
(mando@velvet) (~) $ test 7 -eq 8 && echo ":)"
(mando@velvet) (~) $


L'idée est donc d'effectuer le bon test (appelons ton_test) dans une boucle qui itère sur ce que retourne
egrep
. À chaque itération, on met à jour la variable x sur laquelle portera "ton_test".

egrep -o motif /home/toto.fic.txt | while read x; do (test ton_test && echo $x); done


Bonne chance
0
dubcek Messages postés 18758 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 24 décembre 2024 5 623
24 juil. 2015 à 10:01
hello
une possibilité
$ while read A; do [[ ${A##*:} -ge 10 ]] && echo $A; done < fichier.txt
le premier:15
le deuxieme: 22
0
nihad** Messages postés 3 Date d'inscription vendredi 24 juillet 2015 Statut Membre Dernière intervention 24 juillet 2015
24 juil. 2015 à 18:17
Merci pour votre réponse, mais malheureusement ça ne marche pas!
je réitere mon exercice:

Vous allez utiliser un fichier dans lequel les informations suivantes sont stockées:

premier:3
deuxième:10
troisième:25
quatrième:2
cinquième:12

Écrire un script qui permet de n'afficher que les enregistrements dont la valeur est supérieure à 10.
0
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 419
Modifié par zipe31 le 24/07/2015 à 19:11
Salut,

Puisque tu réitères, nous aussi :

Demander de l'aide pour vos exercices sur CCM
0
mamiemando Messages postés 33446 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 20 décembre 2024 7 812
24 juil. 2015 à 19:26
Je rejoins zipe31, ça ferait d'autant plus plaisir si tu tenais compte des réponses qui ont pu t'être proposées jusque là.
0
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 419 > mamiemando Messages postés 33446 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 20 décembre 2024
24 juil. 2015 à 19:40
Surtout que...
$ cat fichier 
premier:3
deuxième:10
troisième:25
quatrième:2
cinquième:12

$ grep 'motif ;-))' fichier
deuxième:10
troisième:25
cinquième:12
0
nihad** Messages postés 3 Date d'inscription vendredi 24 juillet 2015 Statut Membre Dernière intervention 24 juillet 2015 > mamiemando Messages postés 33446 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 20 décembre 2024
24 juil. 2015 à 21:49
merci pour la réponse c'est vraiment gentil!!!
mais une réponse sans conseille aurait été plus agréable,
à present je n'ai posé qu'une seule parmis les dixaines d'execices que je fais en solo en ce moment ,,,
désoléé pour le derangement!!!
0
nihad** Messages postés 3 Date d'inscription vendredi 24 juillet 2015 Statut Membre Dernière intervention 24 juillet 2015 > mamiemando Messages postés 33446 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 20 décembre 2024
24 juil. 2015 à 21:54
pas de prob,
aussitôt que je trouve la réponse je te la ferai parvenir..
pour l'instant je suis engloutie dans ls boucles...
si tu as des questions n'hsite pas a me les poser ,ni je te donnerai conseil, ni je te jugerai.
tu n'auras que la reponse ( si je serais en mesure de te repondre bien entendu)
0