J'ai deux fichiers de même longueur et je veux échanger un fichier sur 3 colonnes avec le contenu d'un autre fichier. Je veux imprimer ce qui suit:
f1Col1 f1Col2 f1Col3 f1Col4 f1Col5 f1Col6 f2Col1 f2Col2 f2Col3 f1Col10 f1Col11 f1Col12
où f1Col1
est la première colonne de file1
, etc.
J'ai essayé d'utiliser les éléments suivants:
awk 'NR==FNR {h1[$1] = $1; h2[$2] = $2; h3[$3] = $3; next} {print $1,$2,$3,$4,$5,$6,h1[$1],h2[$2],h3[$3],$10,$11,$12}' file2 file1
qui imprime toutes les colonnes nécessaires file1
mais imprime des blancs au lieu des colonnes file2
. Quel est le problème ici?
(note: j'utilise OS X Yosemite)
awk
terminal.app
osx-yosemite
nitrate de sodium
la source
la source
Réponses:
Si
file2
contient (par exemple)alors la première partie de votre
awk
script est miseCela ne vous est d'aucune utilité lorsque vous essayez d'utiliser ces valeurs enregistrées dans la deuxième partie du script. vous devez indexer les tableaux par numéro de ligne:
Donc, votre script doit être
la source
Qu'en est-il de:
la source