|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre du Club
![]() Inscription : août 2009 Messages : 65 ![]() |
Bonsoir,
Je vous présente mes meilleurs vœux pour cette nouvelle année. Je commence cette nouvelle année avec un problème à résoudre : J'ai deux fichiers : J'espère que vous n'allez pas trouver ma demande stupide. Je cherche à obtenir un troisième fichier qui sera : In fine, un fichier qui prendra le premier enregistrement de fic1 et le compète avec le premier enregistrement de fic2 et ainsi de suite. J'ai essayé de le faire en ksh avec deux boucles while mais j'obtiens des doublons. Merci infiniment pour votre aide. |
|
|
00
|
|
|
#2 |
![]() ![]() Idriss NeumannConsultant en SSII et étudiant au CNAM Paris (ingénieur SI) Inscription : février 2009 Messages : 1 974 ![]() |
Salut.
Une méthode barbare mais efficace : tu stocke chaque ligne consécutive dans deux tableaux respectifs (bash gère les tableaux) et dans une troisième boucle qui parcours les tableaux, tu fais quelque chose comme : Code :
echo ${tab1[$i]}${tab2[$i]} >> fichier_sortie Cordialement, Idriss |
|
00
|
|
|
#3 | ||||||
|
Membre du Club
![]() Inscription : août 2009 Messages : 65 ![]() |
Au fait, pour être plus précis, je pars d'un fichier qui ressemble à (ça commence toujours pareil) :
Code :
A partir de ce fichier, je dois avoir deux fichiers : fic1 Code :
Code :
Merci |
||||||
|
|
00
|
|
|
#4 |
|
Expert Confirmé Sénior
![]() Inscription : février 2008 Messages : 2 065 ![]() |
Bonjour emmachane,
ce n'est plus exactement la même question que dans le premier message :/ en bash : tu lis le fichier avec une boucle while, et à l'intérieur de la boucle, tu évalues avec un case ...esac, ce par quoi commence la ligne : si la ligne commence par A, tu la gardes dans une variable, si elle commence par B tu la rediriges vers fic2, enfin, si la ligne commence par C tu envoies la variable de la ligneA avec la ligne C vers fic1 |
|
|
10
|
|
|
#5 |
|
Membre du Club
![]() Inscription : août 2009 Messages : 65 ![]() |
La méthode proposée par N_BaH fonctionne parfaitement.
Faire le lien avec mon poste sur la commande while pour éviter la suppression des espaces entre champs. Merci encore. |
|
|
00
|
|
|
#6 | ||||
|
Membre Expert
![]() Inscription : mars 2002 Messages : 944 ![]() |
Code :
Code :
|
||||
|
|
10
|
|
|
#7 | ||
|
Expert Confirmé Sénior
![]() Inscription : février 2008 Messages : 2 065 ![]() |
c'est également possible avec bash :
Code :
|
||
|
|
10
|
Copyright © 2000-2012 - www.developpez.com