Recuperer le premier element d'une chaine
Résolu/Fermé
seb75
Messages postés
20
Date d'inscription
dimanche 2 mars 2008
Statut
Membre
Dernière intervention
25 mars 2008
-
2 mars 2008 à 13:34
seb75 Messages postés 20 Date d'inscription dimanche 2 mars 2008 Statut Membre Dernière intervention 25 mars 2008 - 2 mars 2008 à 13:57
seb75 Messages postés 20 Date d'inscription dimanche 2 mars 2008 Statut Membre Dernière intervention 25 mars 2008 - 2 mars 2008 à 13:57
A voir également:
- Recuperer le premier element d'une chaine
- Recuperer message whatsapp supprimé - Guide
- Recuperer video youtube - Guide
- Chaine tnt gratuite sur mobile - Guide
- Comment récupérer un compte facebook piraté - Guide
- Impossible de récupérer mon compte gmail - Guide
4 réponses
EminoMeneko
Messages postés
2435
Date d'inscription
jeudi 24 janvier 2008
Statut
Membre
Dernière intervention
23 mai 2018
318
2 mars 2008 à 13:48
2 mars 2008 à 13:48
Ton algorithme semble juste mais j'utilise assez peu read. Ce que j'ai à l'esprit c'est que en shell script quand on lit une valeur on précède la variable de $ or après read il n'y en a pas dans ton code.
Je ne sais pas si la syntaxe de read est telle que tu ne dois pas mettre de $ devant un nom de variable mais ce $ est une généralité en Shell Script. Essai donc ça.
Je ne maitrise pas trop les boucles comme tu le fait mais il me semble avoir lu mes fichiers autrement avec ce type de boucles et la redirection était en première ligne plutôt qu'à la fin.
Il existe plusieurs manière de lire un fichier ligne par ligne je te colle des petits codes issues de mon rapport.
Voilà en espérant que ça aide. :)
PS : En ressortant mes codes on voit qu'il n'y a pas de $ donc ça n'est pas une erreur de ta part mais j'en était plus sûr et je m'en souvenait plus de tout ça. :P
Ah oui et pense à adapter les codes selon tes besoins bien sûr. Moi mon TP c'était de lire le fichier /etc/passwd mais tu peut remplacer par ce qui t'intéresse.
Je ne sais pas si la syntaxe de read est telle que tu ne dois pas mettre de $ devant un nom de variable mais ce $ est une généralité en Shell Script. Essai donc ça.
Je ne maitrise pas trop les boucles comme tu le fait mais il me semble avoir lu mes fichiers autrement avec ce type de boucles et la redirection était en première ligne plutôt qu'à la fin.
Il existe plusieurs manière de lire un fichier ligne par ligne je te colle des petits codes issues de mon rapport.
cat < /etc/passwd | while true do read ligne if [ "$ligne" = "" ] then break fi echo "$ligne" done
function display { while : do read ligne if [ -z "$ligne" ] then break fi echo $ligne done } display < $1
Voilà en espérant que ça aide. :)
PS : En ressortant mes codes on voit qu'il n'y a pas de $ donc ça n'est pas une erreur de ta part mais j'en était plus sûr et je m'en souvenait plus de tout ça. :P
Ah oui et pense à adapter les codes selon tes besoins bien sûr. Moi mon TP c'était de lire le fichier /etc/passwd mais tu peut remplacer par ce qui t'intéresse.
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 897
2 mars 2008 à 13:53
2 mars 2008 à 13:53
Salut,
#! /bin/bash while read ligne do if [ "${ligne::1}" = "<" ] then echo ${ligne} >> fichier1.txt elif [ "${ligne::1}" = ">" ] then echo ${ligne} >> fichier2.txt fi done < fichier3.txt;-))
seb75
Messages postés
20
Date d'inscription
dimanche 2 mars 2008
Statut
Membre
Dernière intervention
25 mars 2008
2 mars 2008 à 13:53
2 mars 2008 à 13:53
merci de ton idée, mais ça ne marche pas.
Je ne pense pas que cela vienne du $, car l'ecriture s'effectue bien, mais tout s'écrit dans le fichier5.txt car la condition di if n'est pas vérifiée.
Je ne pense pas que cela vienne du $, car l'ecriture s'effectue bien, mais tout s'écrit dans le fichier5.txt car la condition di if n'est pas vérifiée.
seb75
Messages postés
20
Date d'inscription
dimanche 2 mars 2008
Statut
Membre
Dernière intervention
25 mars 2008
2 mars 2008 à 13:57
2 mars 2008 à 13:57
Merci beaucoup jipicy, ca marche niquel !!
Merci à vous deux pour la rapidité de vos réponses ;-)
Merci à vous deux pour la rapidité de vos réponses ;-)