2013-04-13 4 views
4

у меня есть два файла одного и того же длины, как:номер Сумма в двух разных файлах

0.99952 0.01 
0.98927 0.02 
0.98242 0.03 

и

-0.758 0.01 
-0.745 0.02 
-0.742 0.03 

Я хотел бы подвести первые номера столбцов и распечатать его в новом файле с те же элементы наряду со вторым столбцом. Вывод должен быть:

0.24152 0.01 
0,24427 0.02 
0,24042 0.03 

Я попытался с

paste file1 file2 | awk '{print ($1 + $2), $4}' > sum 

но вывод:

1.00952 0.01 
1.00927 0.02 
1.01242 0.03 

ответ

6

Вы с недопустимый номер параметра в AWK ($ 2 вместо $ 3)

$1  $2  $3  $4 
0.99952 0.01 -0.758 0.01 
0.98927 0.02 -0.745 0.02 
0.98242 0.03 -0.742 0.03 

Работает:

paste data1 data2 | awk '{print ($1 + $3), $4}' 
+0

правда ... спасибо :) –

5

Единственный awk подход:

$ awk 'NR==FNR{a[NR]=$1;next}{print $1+a[FNR],$2}' file1 file2 
0.24152 0.01 
0.24427 0.02 
0.24042 0.03 
+1

+1. Не могу себе представить, почему кто-то использовал бы пасту + awk по этому поводу, но хорошо. –

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