Используя nawk, как суммировать все числа в полях $1
, $2
и $3
?
8 6 2
7 3 5
1 9 4
Я хочу, чтобы результат был суммой = 45
nawk 'BEGIN { sum=0; } {sum += $1 + $2 + $3;} END { printf "%d\n", sum } ' a.in
используя awk:
awk '{x+=$0;}END{print x}' RS="[ \n]" file
Это будет работать независимо от количества строк или столбцов. Используя разделитель записей (RS) в качестве пробела или новой строки, каждое значение разделяется на отдельную строку и, следовательно, может быть легко добавлено.
Вы также можете использовать coreutils и bc:
<file head -c-1 | tr ' \n' '++'; echo) | bc
Если некоторые столбцы должны быть опущены, например, если ввод такой:
A 8 6 2
B 7 3 5
C 1 9 4
cut
можно выбрать нужные:
<file cut -d' ' -f2- | head -c-1 | tr ' \n' '++'; echo) | bc
Вывод в обоих случаях:
45