Text-Processing

合併兩個文件,一次一列

  • July 6, 2016

我有以下格式的 2 個大文件(3000 列,15000 行)

file1(製表符分隔):

1/0 0/0 0/0
0/0 1/1 0/0
1/1 0/1 0/0

file2(製表符分隔):

3 5 2
1 7 10
3 4 3

我想將每個文件第一列的值與“:”分隔符組合起來,然後轉到第二、第三等列。所需的輸出(製表符分隔):

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

效率並不重要,所以任何語言都可以。如果以前有人問過這個問題,我很抱歉。

像這樣的東西?使用您的範例數據:

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

引用自:https://unix.stackexchange.com/questions/294145