Если мы можем предположить, что всегда нужно добавить 2 строки (никогда не 3, 1 или что-то еще) и что числа всегда находятся во втором столбце, разделенные пробелом, то есть простое решение:
cut -f2 -d' ' input.txt | perl -Mbigint -nle 'print $_ + <>' > output.txt
Команда cut
просто выбирает второй столбец данных и отбрасывает первый. Команда perl
перебирает входящие строки (с помощью переключателя -n
) и выводит сумму текущей и следующей строк (так что она работает в группах по два). Обратите внимание на использование модуля bigint
для обработки длинных строк как очень больших чисел. Наконец, вывод перенаправляется в output.txt
.
Если вам нужны пронумерованные строки в выводе, вы можете подумать о добавлении cat -n
в качестве последнего шага в конвейере или добавить его прямо в код Perl:
cut -f2 -d' ' input.txt | perl -Mbigint -nle 'print ++$x . " " . ($_ + <>)' > output.txt
Или, если можете Не предполагайте, что входные данные отформатированы с пробелами, как в вашем примере, вы также можете перенести эту обработку в Perl:
perl -Mbigint -nle 's/.* //; $x=<>; $x =~ s/.* //; print $_ + $x' input.txt > output.txt