|
Publicité | ||||||||||||||||||||||
|
|
#1 | ||||||
|
Invité régulier
![]() Inscription : juin 2008 Messages : 64 ![]() |
Bonjour à tous,
Alors voila mon petit problème, simple pour certain d'entre vous je pense j'ai une liste de fichier dans un fichierA : genre : Code :
contenu fichierB : Code :
Code :
je sais faire mais inserer le fichierA comme deuxieme colonne du fichierB... une idée ? merci d'avance Dernière modification par zorooo ; 13/01/2010 à 13h24. |
||||||
|
|
00
|
|
|
#2 | ||
|
Membre régulier
![]() Boris PigeotAdministrateur systèmes et réseaux Inscription : juillet 2008 Messages : 72 ![]() |
Ca doit être simplifiable :
Code :
|
||
|
00
|
|
|
#3 | ||
|
Membre habitué
![]() Inscription : mai 2007 Messages : 138 ![]() |
Si tes deux fichiers ont le même nombre de ligne,
lire chaque ligne des deux fichiers dans deux variables séparées col1 et col2 Code :
Dernière modification par noooop ; 13/01/2010 à 14h39. |
||
|
|
00
|
|
|
#4 |
|
Invité régulier
![]() Inscription : juin 2008 Messages : 64 ![]() |
je n'ai qu'un mot
|
|
|
00
|
|
|
#5 |
|
Membre régulier
![]() Boris PigeotAdministrateur systèmes et réseaux Inscription : juillet 2008 Messages : 72 ![]() |
|
|
00
|
|
|
#6 | ||
|
Expert Confirmé
![]() Inscription : février 2008 Messages : 1 897 ![]() |
Code :
|
||
|
|
00
|
|
|
#7 |
|
Invité régulier
![]() Inscription : juin 2008 Messages : 64 ![]() |
comme dab plusieurs façon de faire
faut que je trouve le temps pour etudier les autres histoire de progresser un peu merci |
|
|
00
|
|
|
#8 | ||
|
Membre chevronné
![]() Inscription : septembre 2007 Messages : 685 ![]() |
Bonsoir,
J'ai quelque chose qui ressemble à ce qu'a produit N_BaH, sans avoir regardé. Code :
__________________
Un problème bien posé est déjà résolu (H. Bergson). |
||
|
|
00
|
|
|
#9 | ||
|
Expert Confirmé
![]() Inscription : février 2008 Messages : 1 897 ![]() |
Ou, quelque chose qui ressemble à ce qu'a produit jmelyn. OK, moi, j'ai regardé.
![]() Code :
return dans une console et pourquoi pas simplement : Code :
paste -d' ' fichierB <(sed 's/^\///' fichierA) > fichierMix ?
__________________
Algorithmique et Programmation pour non-matheux Introduction à la Programmation en BASH Dernière modification par N_BaH ; 13/01/2010 à 23h08. |
||
|
|
00
|
|
|
#10 | ||
|
Invité régulier
![]() Inscription : juin 2008 Messages : 64 ![]() |
j'ai étudié vos "choses" j'ai appris pas mal de truc mais :
Code :
|
||
|
|
00
|
|
|
#11 |
|
Expert Confirmé
![]() Inscription : février 2008 Messages : 1 897 ![]() |
Bonjour zorooo,
exec [n]<file exec effectue une redirection d'un fichier vers un descripteur de fichier supplémentaire (ou n est un nombre au-delà de la sortie d'erreur standard (2)). (voir Dédoublement de descripteur de fichier) on aurait pu simplifier les read par read -u [numéro du descripteur de fichier] |
|
|
00
|
|
|
#12 |
|
Invité régulier
![]() Inscription : juin 2008 Messages : 64 ![]() |
mouhai...
et : <&3 ou <&4 ?? |
|
|
00
|
|
|
#13 | ||
|
Membre chevronné
![]() Inscription : septembre 2007 Messages : 685 ![]() |
Bon, explication de texte:
Le problème ici est que la commande read lit une ligne d'un fichier puis le referme. Donc: Code :
Ensuite, dans la boucle: lit une ligne du file descriptor 3 (c'est-à-dire le fichier file_1) et la met dans la variable $ligne_1. Si tout va bien (le retour de read vaut alors zéro), la commande suivante est exécutée: lecture d'une ligne de l'autre fichier. Si tout va toujours bien (le second read renvoie aussi zéro), la commande suivante est exécutée: c'est l'envoi de la ligne du fichier 1 avec la ligne du fichier 2 sans le '/' du début vers le fichier file_out. Si quelque chose s'est mal passé, c'est la dernière partie qui est exécutée: break qui sort de la boucle infinie (while [ 1 ]). Les liens entre ces commandes sont && et ||, une sorte de si - alors - sinon. Voir le manuel de Bash pour plus de précisions. Il y a, je crois, quelques approximations dans la logique: je n'ai pas testé si le fichier 1 a moins de lignes que le fichier 2, je n'ai pas testé le contraire non plus. À voir...
__________________
Un problème bien posé est déjà résolu (H. Bergson). |
||
|
|
00
|
|
|
#14 |
|
Membre chevronné
![]() Inscription : septembre 2007 Messages : 685 ![]() |
Bonsoir,
Je trouve néanmoins que la solution de N_BaH est la plus concise et la plus élégante. Je la modifirais juste un peu comme suit: Code :
sed 's#^/##' file_2 | paste -d ' ' file_1 - > file_out
__________________
Un problème bien posé est déjà résolu (H. Bergson). |
|
|
00
|
|
|
#15 | ||
|
Membre Expert
![]() Frédéric Brugmans Informaticien multitâche Inscription : février 2005 Messages : 664 ![]() |
Avec AWK
Code :
Dernière modification par becket ; 18/01/2010 à 10h31. |
||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com