Juste pour ma culture personnelle, à l'image de la correspondance entre
for i in `cat toto`
et for i in $(<toto)
y a t-il une autre façon de faire un
for i in `cat`
?Ma recherche sur le net n'a pas été fructueuse...
Merci d'avance !
for i in `cat toto`
et for i in $(<toto)
for i in `cat`
?
# Y'en a autant que tu veux....
Posté par Gyro Gearllose . Évalué à 3.
Ainsi, si ton fichier toto fait n lignes, tu peux toujours remplacer ton cat par au choix :
tail -n toto
head -n toto
si tu ne connais pas le nombre de lignes, pourquoi ne pas faire aussi bien :
for i in `sed "s/.*/&/" toto`
Bref, tu as autant de possibilités que tu veux...
Si tu veux t'amuser, tu peux même utiliser des fifo, des pipes, etc...
Bref, tu es libre de choisir ce qui te plais vraiment...
[^] # Re: Y'en a autant que tu veux....
Posté par Maxime . Évalué à 1.
Je voulais simplement éviter l'usage des ` ` qui font créer un nouveau shell et lancer cat (ou autre).
Avec for i in $(<toto), si je ne m'abuse, tout se fait dans le shell courant.
[^] # Re: Y'en a autant que tu veux....
Posté par Gyro Gearllose . Évalué à 1.
Dans ce cas, rien ne t'empêche de faire :
for i in $(cat toto)
ça revient presque au même...
# hmm
Posté par gnumdk (site web personnel) . Évalué à 6.
do
done < toto
Mais c'était ptet pas ca la question ;)
[^] # Re: hmm
Posté par Maxime . Évalué à 2.
[^] # Re: hmm
Posté par wismerhill . Évalué à 1.
Le "while read" va te lire l'entrée standard ligne par ligne, alors que ton "for in cat" lit mot pas mot (au sens du shell).
Pour avoir le même résultat il faut combiner un while et un for:
while read line;do
for i in line;do
#stuff
done
done < toto
# Ben...
Posté par bob6 . Évalué à 1.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.