sed '$!N;$!N;$!N;$!N;s/\n/+/g' list.txt | bc
Демонстрация:
$ seq 33 | sed '$!N;$!N;$!N;$!N;s/\n/+/g'
1+2+3+4+5
6+7+8+9+10
11+12+13+14+15
16+17+18+19+20
21+22+23+24+25
26+27+28+29+30
31+32+33
$ seq 33 | sed '$!N;$!N;$!N;$!N;s/\n/+/g' | bc
15
40
65
90
115
140
96
$
Этот подход имеет несколько преимуществ:
Если вы хотите отбросить лишние (например, отбросить с 31 по 33 в приведенном выше примере), вы можете избавиться от всех $!
условия; это более простая команда, и это была моя первая попытка:
$ seq 33 | sed 'N;N;N;N;s/\n/+/g'
1+2+3+4+5
6+7+8+9+10
11+12+13+14+15
16+17+18+19+20
21+22+23+24+25
26+27+28+29+30
$