|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : novembre 2011 Messages : 7 ![]() |
Bonjour,
J'ai besoin d'urgence de substituer dans un fichier des valeurs par d'autres présentes dans un autre fichier et je ne sait pas comment procéder. N.B. Les 2 fichiers ont le même nombre de lignes (plusieurs centaines) et le champs1 (ville dans l'exemple) est dans le bon ordre dans le fichier2. Par contre il y a des trous dans la numérotation du fichier 1... Je précise aussi que je ne suis pas en bash 4 mais en 2.05b.0(1)-release Exemple du fichier1 (contenant les infos à substituer) : ville1 tata ville4 tbtb ville3 ville5 tctc tdtd ville4 tete ville1 tftf ville5 tgtg thth ville3 Exemple du fichier2 (contenant les noms des villes) : Lille Paris Lyon Toulouse Il me faut donc au final un fichier3 contenant : Lille tata Lyon tbtb Paris Toulouse tctc tdtd Lyon tete Lille tftf Toulouse tgtg thth Paris Merci d'avance pour votre aide ! |
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() Inscription : novembre 2011 Messages : 7 ![]() |
Merci mais en fait j'ai oublié que le champ 1 peut se retrouver à une autre position c'est un peu plus compliqué et ça rend les chose impossibles sans un script contenant un sed je pense...
Je mets à jour mon post |
|
|
00
|
|
|
#4 |
|
Expert Confirmé Sénior
![]() Inscription : février 2008 Messages : 2 071 ![]() |
Bonjour,
|
|
|
00
|
|
|
#5 |
|
Invité de passage
![]() Inscription : novembre 2011 Messages : 7 ![]() |
Désolé mais je ne peux donner les données réelles des fichiers (données confidentielles). Je rajoute une ligne 3 et 4 pour plus de clarté... j’espère
|
|
|
00
|
|
|
#6 |
|
Invité de passage
![]() Inscription : novembre 2011 Messages : 7 ![]() |
Je pense qu'il faut charger la première ligne du fichier2 (Paris), faire un sed avec substitution globale dans le fichier1 pour remplacer tous les ville1 par Paris, ensuite charger la seconde ligne du fichier2 et refaire un sed etc... mais j'ai du mal (je débute en scripting et j'ai du mal à imbriquer 2 boucles)
|
|
|
00
|
|
|
#7 |
|
Expert Confirmé
![]() Inscription : janvier 2011 Messages : 970 ![]() |
__________________
$ man woman Il n'y a pas de page de manuel pour woman. |
|
|
00
|
|
|
#8 |
|
Invité de passage
![]() Inscription : novembre 2011 Messages : 7 ![]() |
En testant un solution je me suis aperçu qu'il y a des trou dans la numérotation. Désolé mais je ne l'avais pas vu au début. Je modifie à nouveau mon exemple.
|
|
|
00
|
|
|
#9 | ||
|
Expert Confirmé Sénior
![]() Inscription : février 2008 Messages : 2 071 ![]() |
Bonjour,
étant donné que des solutions ont déjà été données sur un autre forum, je crois pouvoir y aller de la mienne ici : Code :
|
||
|
|
10
|
|
|
#10 | ||
|
Expert Confirmé
![]() Inscription : janvier 2011 Messages : 970 ![]() |
Salut,
Ma mienne, même sans bash4 Code :
__________________
$ man woman Il n'y a pas de page de manuel pour woman. |
||
|
|
10
|
|
|
#11 | |||
|
Invité de passage
![]() Inscription : novembre 2011 Messages : 7 ![]() |
Citation:
|
|||
|
|
00
|
|
|
#12 | |
|
Expert Confirmé Sénior
![]() Inscription : février 2008 Messages : 2 071 ![]() |
Citation:
bientôt sans les mains ? ![]() ps: en bash "moderne", i=1 n'est pas nécessaire, il suffit d'incrémenter {codeinline]i[/codeinline] avant dans l'expression sed :i, qui ne vaut rien (0), est incrémenter avant, et donc vaut 1. |
|
|
|
10
|
|
|
#13 | |||
|
Invité de passage
![]() Inscription : novembre 2011 Messages : 7 ![]() |
Citation:
|
|||
|
|
00
|
|
|
#14 | ||
|
Expert Confirmé
![]() Inscription : janvier 2011 Messages : 970 ![]() |
Citation:
Citation:
__________________
$ man woman Il n'y a pas de page de manuel pour woman. |
||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com