2016-12-21 3 views
-3

Добавление столбцов с помощью AWK:добавление значения столбцов с использованием AWK

x,y,8,0,0,0,0,0,0,0 
m,z,0,0,0,0,0,0,0,0 
a,b,206,1,0,2,0,0,0,0 
c,d,211,0,0,0,0,0,0,1 
e,f,8,0,0,1,0,0,0,0 
g,h,5,0,0,0,0,0,0,0 
i,j,2,0,0,0,0,0,0,0 
k,l,36,0,0,0,0,0,0,0 
m,n,2,0,0,0,0,0,0,0 
o,p,43,0,0,1,0,0,0,0 
q,r,2153,28,1,5,0,0,5,3 
s,t,96,0,0,0,0,0,0,0 
u,v,25,0,0,0,0,0,0,0 
x,y,4,0,0,0,0,0,0,0 
,,2799,29,1,9,0,0,5,4 

awk -F, '{for (i=1;i<=NR;i++) sum[i]+=$i;}; END{for (i in sum) print sum[i];}' file1 

но это печать на новой строки.

+0

Есть вопрос здесь? –

+0

yep его печать на новой строке выход, а не в той же строке, разделенной запятой –

+0

Что это должно делать? –

ответ

0

Вы могли бы попробовать это;

это сумма строк и вставка последней из каждой строки.

awk -F, '{sum=0; for (i=1; i<=NF; i++) { sum+= $i } print $0 "," sum}' file1 

Подведем колонны,

awk 'BEGIN{FS=OFS=","} {for (i=1;i<=NF;i++) sum[i]+=$i} END{for(i=1;i<=NF;i++) printf sum[i] OFS; printf "\n"}' file1 

Тест:

$ awk 'BEGIN{FS=OFS=","} {for (i=1;i<=NF;i++) sum[i]+=$i} END{for(i=1;i<=NF;i++) printf sum[i] OFS; printf "\n"}' file1 
0,0,2799,29,1,9,0,0,5,4, 


$ awk -F, '{sum=0; for (i=1; i<=NF; i++) { sum+= $i } print $0 "," sum}' test 
x,y,8,0,0,0,0,0,0,0,8 
m,z,0,0,0,0,0,0,0,0,0 
a,b,206,1,0,2,0,0,0,0,209 
c,d,211,0,0,0,0,0,0,1,212 
e,f,8,0,0,1,0,0,0,0,9 
g,h,5,0,0,0,0,0,0,0,5 
i,j,2,0,0,0,0,0,0,0,2 
k,l,36,0,0,0,0,0,0,0,36 
m,n,2,0,0,0,0,0,0,0,2 
o,p,43,0,0,1,0,0,0,0,44 
q,r,2153,28,1,5,0,0,5,3,2195 
s,t,96,0,0,0,0,0,0,0,96 
u,v,25,0,0,0,0,0,0,0,25 
+0

Нет его пустого вывода, не показывая никаких результатов –

+0

@ sam_84. Я обновил ан. вы могли бы попробовать это; –

+0

первая пока еще не отображает результаты, попробовав использовать awk -F, не повезло –

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