concatener deux fichiers

concatener deux fichiers - Shell/Batch - Programmation

Marsh Posté le 31-05-2007 à 11:40:09    

bonjour,
je voudrai écrire un script shell qui concatène deux fichiers. Après plusieurs essais trouvés le web, je n'y arrive pas. :(
 
Voici ce que je voudrais faire:
 
fichier 1   fichier 2
a a           1 1
b b           2 2
c c           3 3
 
je voudrai créer un fichier 3 contenant
a a 1 1
b b 2 2
c c 3 3
 
Quelqu'un peut-il m'aider?
Merci.


Message édité par deck10 le 31-05-2007 à 11:59:55
Reply

Marsh Posté le 31-05-2007 à 11:40:09   

Reply

Marsh Posté le 31-05-2007 à 13:06:13    

Avec awk :

awk 'BEGIN{while((getline a<ARGV[1])>0){getline b<ARGV[2];print a b}}' fichier1 fichier2


Message édité par matafan le 31-05-2007 à 13:07:11
Reply

Marsh Posté le 31-05-2007 à 15:14:58    

j'ai exécuté cette commande directement dans un shell:
awk 'BEGIN{while((getline a<ARGV[1])>0){getline b<ARGV[2];print a b}}' tmp_metrics tmp_noms
 
Et j'ai eu ca comme erreurs :(
awk: syntax error near line 1
awk: illegal statement near line 1
awk: syntax error near line 1
awk: bailing out near line 1
 
Tu sais ce que cela signifie?


Message édité par deck10 le 31-05-2007 à 15:15:15
Reply

Marsh Posté le 31-05-2007 à 15:26:56    

Il est tout pourri ton awk. J'ai copié-collé ta ligne dans mon shell, et ça marche sans problème à la fois avec gawk sous linux, et avec awk sous AIX.

Reply

Marsh Posté le 31-05-2007 à 15:38:44    

:(
c'est une machine sun.
Ca doit venir là alors mon problème si ca marche de ton coté.
 
Il n'y a pas une autre possibilité?

Reply

Marsh Posté le 31-05-2007 à 15:46:43    

ou sinon, ya un moyen de mettre à jour mon awk?

Reply

Marsh Posté le 31-05-2007 à 17:35:30    

deck10 a écrit :

ou sinon, ya un moyen de mettre à jour mon awk?


Essaye nawk au lieu de awk. C'est une version plus récente de awk présente sur certains OS.
 
Ceci étant, la commande paste devrait faire l'affaire :

paste -d ' ' fichier1 fichier2


 
Jean-Pierre.

Reply

Marsh Posté le 31-05-2007 à 19:58:57    

Bien vu paste, je ne connaissais pas.

Reply

Marsh Posté le 31-05-2007 à 21:19:39    

matafan a écrit :

Il est tout pourri ton awk. J'ai copié-collé ta ligne dans mon shell, et ça marche sans problème à la fois avec gawk sous linux, et avec awk sous AIX.


Oui mais tu dois probablement utiliser des awk "évolués" (ceux qui connaissent argv par exemple). Le awk de base ne connait pas argv...


---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
Reply

Marsh Posté le 01-06-2007 à 10:45:44    

merci,
paste marche comme je veux. Parfait :)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed