Сумма текстового источника разграничена пробелом

Как получить сумму каждого столбца из файла как:

123  32  122
43   11  0
444  112 32

и дайте результат как:

610 155 154

в простой команде?

Это должно быть легко в Perl, но я хотел бы знать, упаковал ли кто-то уже его в репозитории вселенной или где-то в другом месте, наряду с другими утилитами, чтобы сделать с текстовыми таблицами.

0
задан 4 June 2011 в 06:05

3 ответа

Это должно добиться цели:

cat foo | awk '{ SUM += $1; SUM1 += $2; SUM3 += $3} END { print SUM, SUM1, SUM3 }'

1
ответ дан 22 December 2019 в 14:24

awk хорош для этих типов задач

awk '{for (i=1; i<=NF; ++i) sum[i]+=$i} END {for (i=1; i<=NF; ++i) printf "%3d ", sum[i]; printf "\n"}' filename
1
ответ дан 22 December 2019 в 14:24

В Python:

reduce(lambda x, y: \
  map(lambda pair: pair[0] + pair[1], zip(x, y)), \
  [map(int, n.split()) for n in file("foo", "r").read().splitlines()])

где число столбцов и целочисленного размера ограничено доступной памятью.

0
ответ дан 22 December 2019 в 14:24

Другие вопросы по тегам:

Похожие вопросы: