Script [KSH]
Résolu/Fermé
edwingb
Messages postés
343
Date d'inscription
jeudi 9 février 2012
Statut
Membre
Dernière intervention
20 novembre 2012
-
Modifié par edwingb le 10/02/2012 à 09:51
edwingb Messages postés 343 Date d'inscription jeudi 9 février 2012 Statut Membre Dernière intervention 20 novembre 2012 - 10 févr. 2012 à 15:35
edwingb Messages postés 343 Date d'inscription jeudi 9 février 2012 Statut Membre Dernière intervention 20 novembre 2012 - 10 févr. 2012 à 15:35
A voir également:
- # /Bin/ksh
- .Bin - Guide
- Fichier cue et bin ✓ - Forum Logiciels
- Recycle bin ✓ - Forum Virus
- Modifier fichier bin ✓ - Forum Logiciels
- Att00001.bin - Forum Windows
4 réponses
Bonjour,
Je ne suis pas sûr d'avoir compris la question, je réponds à ce que j'ai compris.
D'abord, tu vides le fichier au départ du programme :
> element
Ensuite, quand tu entres dans ton 1), il te suffit d'écrire à la fin du fichier :
done >> element
Je ne suis pas sûr d'avoir compris la question, je réponds à ce que j'ai compris.
D'abord, tu vides le fichier au départ du programme :
> element
Ensuite, quand tu entres dans ton 1), il te suffit d'écrire à la fin du fichier :
done >> element
edwingb
Messages postés
343
Date d'inscription
jeudi 9 février 2012
Statut
Membre
Dernière intervention
20 novembre 2012
43
Modifié par edwingb le 10/02/2012 à 10:00
Modifié par edwingb le 10/02/2012 à 10:00
Enfaite mon probleme est que lorsque je saisi mes noms
MENU
entrer un nom :
edwing
entrer un nouveau nom ? oui
entrer un nom
charles
entrer un nouveau nom ? non
liste des nom :
edwing
charles
A ce moment je me dis "mince" j'ai oublié de rentrer un autre nom, donc je vais ressaisir un autre nom
MENU
entrer un nom :
gm
entrer un nouveau nom ? non
liste des noms :
gm
charles
J'aimerai que la liste soit :
edwing
charles
gm
MENU
entrer un nom :
edwing
entrer un nouveau nom ? oui
entrer un nom
charles
entrer un nouveau nom ? non
liste des nom :
edwing
charles
A ce moment je me dis "mince" j'ai oublié de rentrer un autre nom, donc je vais ressaisir un autre nom
MENU
entrer un nom :
gm
entrer un nouveau nom ? non
liste des noms :
gm
charles
J'aimerai que la liste soit :
edwing
charles
gm
Utilisateur anonyme
10 févr. 2012 à 11:40
10 févr. 2012 à 11:40
salut,
donc, en fait, tu ne veux que les noms dans le fichier, pas l'indice, c'est ça ?
alors, pas besoin d'une boucle for pour écrire dans le fichier
donc, en fait, tu ne veux que les noms dans le fichier, pas l'indice, c'est ça ?
alors, pas besoin d'une boucle for pour écrire dans le fichier
printf '%s\n' "${saisie[@]}" >> fichierDzElementsen utilisant la "double-redirection", qui permet d'ajouter du contenu à la fin d'un fichier.
edwingb
Messages postés
343
Date d'inscription
jeudi 9 février 2012
Statut
Membre
Dernière intervention
20 novembre 2012
43
10 févr. 2012 à 11:55
10 févr. 2012 à 11:55
Enfaite il faudrait que j'enleve :
Et que je le remplace par :
?
for j in ${array[@]}; do echo "Element $n = $j" ((n++)) done > element;;
Et que je le remplace par :
printf '%s\n' "${array[@]}" >> element
?
edwingb
Messages postés
343
Date d'inscription
jeudi 9 février 2012
Statut
Membre
Dernière intervention
20 novembre 2012
43
Modifié par edwingb le 10/02/2012 à 12:29
Modifié par edwingb le 10/02/2012 à 12:29
Trouvé !!!!!!
ET cela foncitonne parfaitement :D
case $reps in 1 ) .... for j in ${array[@]}; do echo "$j" done >> element;; 2 ) p=$(cat element | wc -l) i=1 while [[ i -lt $p ]]; do head -$i element | tail -1 ((i++)) done;;
ET cela foncitonne parfaitement :D
edwingb
Messages postés
343
Date d'inscription
jeudi 9 février 2012
Statut
Membre
Dernière intervention
20 novembre 2012
43
10 févr. 2012 à 12:28
10 févr. 2012 à 12:28
Merci pour votre aide gm et qqunquicommenceparQ
ça fonctionne, c'est bien. mais je suis à eu près sûr que d'ici peu de temps tu verras dans ce script des choses inutiles, genre
le 'while read' qui suit serait avantageusement remplacé par un simple 'cat fichier' lol
et pour répondre à ta question, oui : 'printf' remplace le 'for'
cat fichier | wc -lalors que
wc -l <fichierest plus court...
le 'while read' qui suit serait avantageusement remplacé par un simple 'cat fichier' lol
et pour répondre à ta question, oui : 'printf' remplace le 'for'
edwingb
Messages postés
343
Date d'inscription
jeudi 9 février 2012
Statut
Membre
Dernière intervention
20 novembre 2012
43
10 févr. 2012 à 13:46
10 févr. 2012 à 13:46
lol oui c'est que je suis vraiment compliqué la ^^
Ok pour le printf
Ok pour le printf
edwingb
Messages postés
343
Date d'inscription
jeudi 9 février 2012
Statut
Membre
Dernière intervention
20 novembre 2012
43
Modifié par edwingb le 10/02/2012 à 13:58
Modifié par edwingb le 10/02/2012 à 13:58
Mais je ne sais pas si ça vient de mon script mais quand je rentre 3 noms, dans mon fichier "element" j'en retrouve 4 avec redondance du 2ieme nom
Pour remédier au probleme j'ai utilisé :
Pour remédier au probleme j'ai utilisé :
sed '$d' elementqui affiche le fichier "element" sans la dernière ligne..
10 févr. 2012 à 09:55
10 févr. 2012 à 10:12
element 1 = edwing
element 2 = charles
element 1 = edwing
element 2 = gm
...
la valeur de "j" reprend a zero
10 févr. 2012 à 11:00
wc -l te retourne le nombre de lignes du fichier.
Par contre cette solution ne gérera pas les doublons
Modifié par edwingb le 10/02/2012 à 11:13
? :/
10 févr. 2012 à 11:29
Et je n'avais pas vu que tu voulais que ça fonctionne en relançant le programme (je pensais que tu bouclais).
Donc : (script non testé, mais l'idée est là) :