2017-02-09 4 views
0

У меня есть сотни файлов с этим форматом (два столбца в файлах разделены пробелом).Как объединить много текстовых файлов в формате с разделителями табуляции?

file1:

abcd 2 
efgh 1 
ijkl 3 
mnop 4 

file2:

abcd 1 
efgh 2 
mnop 2 

file3:

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

Смежные вопросы