concatener deux fichiers - Shell/Batch - Programmation
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 |
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?
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.
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é?
Marsh Posté le 31-05-2007 à 15:46:43
ReplyMarsh 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.
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...
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