2017-02-09 4 views
0

私はこのフォーマットで数百のファイルを持っています(ファイルの2つの列はスペースで区切られています)。多くのテキストファイルをタブ区切り形式で組み合わせる方法は?

FILE1:

abcd 2 
efgh 1 
ijkl 3 
mnop 4 

FILE2:

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 

最初に、2列のファイルを2行に転置する必要があります。私は、このawkコマンドを試みたが、うまくいきませんでした:

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

難しい部分転置後にすべてのファイルを結合し、ファイル内の特定のエントリの値がないZERO入力と1つのファイルを作成します。どのようなプログラムがこれを行うことができますか?

+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

関連する問題