J’ai un feadList
délimité par des feadList
qui a deux colonnes ( date
+ id
):
20130509 1319 20130510 1320 20130511 1321 20130512 1322 20130513 1323
Lors de la lecture de chaque ligne, je souhaite courber les données d’un lien Web en utilisant id
puis les enregistrer dans un fichier avec la date
comme nom de fichier. Pour l’instant j’ai quelque chose comme:
for feed in $feadList do awk -F "\t" '{print date=$1, seq=$2}' $feed curl "$WebLink/$seq/data" > $date done
mais apparemment ça ne marche pas. Les gars apportent un peu de lumière là-dessus? Merci!
Une autre façon de le faire serait
while read date seq do curl "$WebLink/$seq/data" > $date done < feadList
while read date seq do curl "$WebLink/$seq/data" > $date done < feadList
La commande read
(un shell intégré) divise les lignes de données en deux champs assignés à $date
et $seq
, puis vous pouvez les utiliser dans le corps de la boucle. S'il y avait des champs supplémentaires sur une ligne, ils seraient également enregistrés dans $seq
.
Vos notations de shell ne vont tout simplement pas fonctionner comme vous en avez besoin. La boucle serait exécutée exactement une fois avec la valeur dans la variable $feadList
(qui est distincte de feadList
tant que nom de fichier). La commande awk
produirait une sortie standard sur une ligne pour chaque ligne d'entrée, contenant les données fractionnées. Mais ce serait une sortie simple ... il n'y aurait pas d'affectation aux variables shell $date
et $seq
, et la commande curl
ne fonctionnerait pas comme prévu.