Boucle for pour toutes les lignes d'un fichier
Fermé
wtfunix
Messages postés
48
Date d'inscription
mercredi 11 juin 2014
Statut
Membre
Dernière intervention
25 août 2014
-
31 juil. 2014 à 16:44
wtfunix Messages postés 48 Date d'inscription mercredi 11 juin 2014 Statut Membre Dernière intervention 25 août 2014 - 1 août 2014 à 12:52
wtfunix Messages postés 48 Date d'inscription mercredi 11 juin 2014 Statut Membre Dernière intervention 25 août 2014 - 1 août 2014 à 12:52
A voir également:
- Boucle for pour toutes les lignes d'un fichier
- Fichier rar - Guide
- Comment ouvrir un fichier epub ? - Guide
- Comment réduire la taille d'un fichier - Guide
- Fichier host - Guide
- Fichier iso - Guide
4 réponses
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 416
31 juil. 2014 à 16:47
31 juil. 2014 à 16:47
gnugo
Messages postés
145
Date d'inscription
lundi 6 septembre 2010
Statut
Membre
Dernière intervention
8 décembre 2014
46
Modifié par gnugo le 31/07/2014 à 19:41
Modifié par gnugo le 31/07/2014 à 19:41
Il faudrait aussi que tu nous donnes un exemple de comment tu appelles ton script (paramètres), et comment tu comptes l'appeler quand il sera devenu multiligne
wtfunix
Messages postés
48
Date d'inscription
mercredi 11 juin 2014
Statut
Membre
Dernière intervention
25 août 2014
Modifié par jipicy le 1/08/2014 à 10:32
Modifié par jipicy le 1/08/2014 à 10:32
Au tout début je suis partie sur une exemple où le programme me donner bien le résultat :
Du coup, j'ai voulu effectuer la même chose pour le fichier paramètres suivant, ce fichier s'apelle f3:
2014 MJ26 2014 07 02 0.0249
2014 MF6 2014 07 09 0.0233
2014 MS5 2014 07 13 0.0449
2011 PU1 2014 07 17 0.0201
2014 MV41 2014 07 17 0.0273
2014 MA6 2014 07 23 0.0486
3981 88 2014 08 12 0.0399
2005 CD69 2014 08 14 0.0187
2014 MP5 2014 08 16 0.0451
1631 32 2014 08 30 0.0347
2011 PT 2014 10 03 0.0454
2011 TB4 2014 10 09 0.0134
2009 TD8 2014 10 27 0.0265
Cependant, afin d'avoir la même forme j 'ai du modifier le code et je l'ai tester pour la première ligne seulement, comme le montre le preogramme en dessous :
Je ne sais pas comment effectuer la même chose pour tout le fichier f3 ..
asteroid="2013_WT67"
date1="2014-8-17T00:00:00"
step="5min"
nbstep="300"
echo $asteroid
echo $date1
echo $step
echo $nbstep
curl "[http://vo.imcce.fr/webservices/miriade/ephemcc/?-name=]$asteroid&-type=aster&-ep=$date1&-nbd=$nbstep&-step=$step&-tcoor=1&-mime=text" > fictemp
echo "fin de step 1"
sed '/#/d' fictemp > fictemp2
#cat fictemp2 | sort -n -k 8 > fictemp3
cat fictemp2 | sort -k 8 > fictemp3
line=$(head -n 2 fictemp3)
echo $line
echo "fin de step 2"
Du coup, j'ai voulu effectuer la même chose pour le fichier paramètres suivant, ce fichier s'apelle f3:
2014 MJ26 2014 07 02 0.0249
2014 MF6 2014 07 09 0.0233
2014 MS5 2014 07 13 0.0449
2011 PU1 2014 07 17 0.0201
2014 MV41 2014 07 17 0.0273
2014 MA6 2014 07 23 0.0486
3981 88 2014 08 12 0.0399
2005 CD69 2014 08 14 0.0187
2014 MP5 2014 08 16 0.0451
1631 32 2014 08 30 0.0347
2011 PT 2014 10 03 0.0454
2011 TB4 2014 10 09 0.0134
2009 TD8 2014 10 27 0.0265
Cependant, afin d'avoir la même forme j 'ai du modifier le code et je l'ai tester pour la première ligne seulement, comme le montre le preogramme en dessous :
ligne='sed -n ${1}p f3'
asteroid='echo $ligne| awk '{print $1"_"$2}''
date1="${2}T00:00:00"
date2='echo $ligne| awk '{print $3"-"$4"-"$5}''
date3='echo $date2$date1'
step="5min"
nbstep="300"
echo "nom asteroide:" $asteroid
echo " date:" $date1
echo " date:" $date2
echo " date:" $date3
echo "step:" $step
echo "nombre de step:"$nbstep
curl "[http://vo.imcce.fr/webservices/miriade/ephemcc/?-name=]$asteroid&-type=aster&-ep=$date3&-nbd=$nbstep&-step=$step&-tcoor=1&-mime=text" > fic
echo "fin de step 1"
sed '/#/d' fic > fic1
cat fic1 | sort -k 8 > fic2
line=$(head -n 2 fic2)
echo $line
echo "fin de step 2"
Je ne sais pas comment effectuer la même chose pour tout le fichier f3 ..
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 416
1 août 2014 à 10:51
1 août 2014 à 10:51
Salut,
Tiens, voilà un exemple de lecture de fichier ligne par ligne en prenant tes exemples. Note que j'ai bêtement copié tes variables date, ce qui affiche quelques incohérences ;-\
Tiens, voilà un exemple de lecture de fichier ligne par ligne en prenant tes exemples. Note que j'ai bêtement copié tes variables date, ce qui affiche quelques incohérences ;-\
$ cat f3
2014 MJ26 2014 07 02 0.0249
2014 MF6 2014 07 09 0.0233
2014 MS5 2014 07 13 0.0449
2011 PU1 2014 07 17 0.0201
2014 MV41 2014 07 17 0.0273
2014 MA6 2014 07 23 0.0486
3981 88 2014 08 12 0.0399
2005 CD69 2014 08 14 0.0187
2014 MP5 2014 08 16 0.0451
1631 32 2014 08 30 0.0347
2011 PT 2014 10 03 0.0454
2011 TB4 2014 10 09 0.0134
2009 TD8 2014 10 27 0.0265
$ cat foo.sh
#! /bin/bash
step="5min"
nbstep="300"
while read line
do
A=( ${line} )
echo " nom asteroide: ${A[0]}_${A[1]}"
echo " date: ${A[2]}T00:00:00"
echo " date: ${A[2]}-${A[3]}-${A[4]}"
echo " date: ${A[2]}-${A[3]}-${A[4]}${A[2]}T00:00:00"
echo " step: ${step}"
echo " nombre de step: ${nbstep}"
echo
done < f3
$ ./foo.sh
nom asteroide: 2014_MJ26
date: 2014T00:00:00
date: 2014-07-02
date: 2014-07-022014T00:00:00
step: 5min
nombre de step: 300
nom asteroide: 2014_MF6
date: 2014T00:00:00
date: 2014-07-09
date: 2014-07-092014T00:00:00
step: 5min
nombre de step: 300
nom asteroide: 2014_MS5
date: 2014T00:00:00
date: 2014-07-13
date: 2014-07-132014T00:00:00
step: 5min
nombre de step: 300
nom asteroide: 2011_PU1
date: 2014T00:00:00
date: 2014-07-17
date: 2014-07-172014T00:00:00
step: 5min
nombre de step: 300
nom asteroide: 2014_MV41
date: 2014T00:00:00
date: 2014-07-17
date: 2014-07-172014T00:00:00
step: 5min
nombre de step: 300
nom asteroide: 2014_MA6
date: 2014T00:00:00
date: 2014-07-23
date: 2014-07-232014T00:00:00
step: 5min
nombre de step: 300
nom asteroide: 3981_88
date: 2014T00:00:00
date: 2014-08-12
date: 2014-08-122014T00:00:00
step: 5min
nombre de step: 300
nom asteroide: 2005_CD69
date: 2014T00:00:00
date: 2014-08-14
date: 2014-08-142014T00:00:00
step: 5min
nombre de step: 300
nom asteroide: 2014_MP5
date: 2014T00:00:00
date: 2014-08-16
date: 2014-08-162014T00:00:00
step: 5min
nombre de step: 300
nom asteroide: 1631_32
date: 2014T00:00:00
date: 2014-08-30
date: 2014-08-302014T00:00:00
step: 5min
nombre de step: 300
nom asteroide: 2011_PT
date: 2014T00:00:00
date: 2014-10-03
date: 2014-10-032014T00:00:00
step: 5min
nombre de step: 300
nom asteroide: 2011_TB4
date: 2014T00:00:00
date: 2014-10-09
date: 2014-10-092014T00:00:00
step: 5min
nombre de step: 300
nom asteroide: 2009_TD8
date: 2014T00:00:00
date: 2014-10-27
date: 2014-10-272014T00:00:00
step: 5min
nombre de step: 300
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 416
1 août 2014 à 11:28
1 août 2014 à 11:28
Salut,
Merci, mais pas tout d'un coup pour notre ami, le but etant qu'il lise un fichier ligne par ligne ;-\
Merci, mais pas tout d'un coup pour notre ami, le but etant qu'il lise un fichier ligne par ligne ;-\
wtfunix
Messages postés
48
Date d'inscription
mercredi 11 juin 2014
Statut
Membre
Dernière intervention
25 août 2014
Modifié par wtfunix le 1/08/2014 à 13:22
Modifié par wtfunix le 1/08/2014 à 13:22
Merci beaucoup pour les réponses ça marche maintenant !!! :D