J'ai 2 grands files (3000 colonnes, 15000 lignes) du format suivant
file1 (séparé par tabulation):
1/0 0/0 0/0 0/0 1/1 0/0 1/1 0/1 0/0
file2 (séparé par tabulation):
3 5 2 1 7 10 3 4 3
Je voudrais combiner les valeurs de la première colonne de chaque file avec un séparateur ":", puis passer aux colonnes deuxième, troisième, etc. Sortie souhaitée (séparée par tabulation):
1/0:3 0/0:5 0/0:2 0/0:1 1/1:7 0/0:10 1/1:3 0/1:4 0/0:3
L'efficacité n'est pas critique, donc toute langue est bien. Je m'excuse si cela a été demandé avant.
Quelque chose comme ça? Travaillé avec vos données d'échantillon:
paste file{1,2} | awk '{for (i=1;i<=NF/2; i++){printf "%s:%s\t",$i,$(NF/2+i)};printf "\n"}' 1/0:3 0/0:5 0/0:2 0/0:1 1/1:7 0/0:10 1/1:3 0/1:4 0/0:3
awk '{ getline f2 < "file2" split(f2, a) for (i=1; i<=NF; i++) printf "%s:%s\t", $i, a[i] print "" }' file1
Une approche légèrement différente:
paste -d: <(xargs -n1 <file1) <(xargs -n1 <file2) | xargs -n 3