2017-02-09 42 views
0

我有数百个这种格式的文件(文件中的两列由空格分隔)。如何结合制表符分隔格式的许多文本文件?

文件1:

abcd 2 
efgh 1 
ijkl 3 
mnop 4 

文件2:

abcd 1 
efgh 2 
mnop 2 

文件3:

mnop 1 

我想在制表符分隔的文件中的所有结果格式如下:

 abcd efgh ijkl mnop 
file1 2 1  3 4 
file2 1 2  0 2 
file3 0 0  0 1 

因此,首先我需要将两列文件转置为两行。我试着用这个awk命令,但没有工作:

awk '!(NR%2){print}' FS='\n' OFS='\t' RS= file1.txt > file1-tr.txt 

难的部分,以转置后的所有文件结合起来,使一个单一的文件输入为零那里是在文件中某些条目的值。不知道什么程序可以做到这一点?!

+4

通过标记多种不同的语言来铸造宽网络并不是获得答案的最佳方式。你应该阅读[如何问](http://stackoverflow.com/help/how-to-ask),并展示你想要做的一些初步尝试。 –

回答

2

awk来救援!

$ awk -v OFS='\t' '{f=FILENAME; fs[f]; vs[$1]; a[f,$1]=$2} 
       END {for(v in vs) printf "%s", OFS v; 
        print ""; 
        for(f in fs) 
         {printf "%s", f OFS; 
         for(v in vs) printf "%s", a[f,v]+0 OFS; 
         print ""}}' file{1..3} | 
    column -ts'\t' 
+0

谢谢!有效! – Ramon

相关问题