суммирование двух матриц, каждый из которых в другом файле

У меня есть 2 файла, каждый из которых содержит следующее:

файл 1:

данные: [56, 34, 23, 54, 90, 234, 53, 12]

файл 2:

данные: [42, 56, 23, 98, 90, 23, 53, 32]

Я хочу суммировать первое значение из файла 1 с 1-м значением из файла 2 и 2-го со вторым и т. д. и т. д.

поэтому файл3 должен выглядеть следующим образом:

данные: [98, 90, 46, 152, …]

как я могу достичь чего-то подобного

4 Solutions collect form web for “суммирование двух матриц, каждый из которых в другом файле”

awk -F ',? ' ' { for(i=4;i!="]";i++) A[i]=$i getline file2 printf("%s %s %s ", $1, $2, $3) i-- for(j=4;j<i;j++) printf("%d, ", $j + A[j]) print $j + A[j++], $j } ' file1 
 paste file1 file2 | tr '[],:' ' ' | perl -lane ' my($b, $e) = grep { $F[$_] eq "data" } 0 .. $#F; print join $", qw/data : [/, join(", ", map { $F[$_] + $F[$_+$e-$b] } $b+1 .. $e-1), q/]/, ; ' > file3 

Вывод

 data : [ 98, 90, 46, 152, 180, 257, 106, 44 ] 

С GNU awk как одна строка (разделенная здесь на две строки для удобочитаемости):

 $ awk 'BEGIN{FPAT="[0-9]+"}NR!=FNR{printf("%s","data : [ ")} \ {for (i=1;i<=NF;i++) if (NR==FNR) {a[i]=$i} else {printf("%s%s", (a[i]+$i), (i==NF)?" ]\n":",")}}' file5 file6 data : [ 98,90,46,152,180,257,106,44 ] 

Это использует метод FPAT для определения полей вместо FS.

FS обычно используется для определения того, что поля не содержат, в то время как FPAT используется для определения того, что содержит поля.

Ваши файлы: File5 и File6:

 $ cat file5 data : [ 56, 34, 23, 54, 90, 234, 53, 12 ] $ cat file6 data : [ 42, 56, 23, 98, 90, 23, 53, 32 ] 
 $ awk -F'[^0-9]+' ' # output prefix BEGIN { printf "data : [ " } # read first file NR == FNR { for (i = 2; i < NF; i++) { a[i] = $i } } # read second file, output list of sums NR != FNR { for (i = 2; i < NF; i++) { printf sep $i + a[i] sep = ", " } } # output suffix END { print " ]" } ' file1 file2 
  • Как дублировать файл несколько раз при встраивании индекса в каждый файл
  • Замена всех ненулевых результатов на «1» для формирования присутствия / отсутствия
  • Наложение символа между повторяющимися символами
  • patsplit vs раскол в gawk
  • Анализ вывода команды df с помощью awk
  • Список всех пар слов, которые отображаются в строке вместе в файле
  • Замените точки с запятой запятыми между котировками только
  • Показывать строки, соответствующие шаблону и 4 строки перед каждым
  • Замените строку в столбце файла CSV другой строкой с одной цитатой
  • Как создать однородные столбцы из текста, содержащего как вкладки, так и пробелы?
  • Как проверить, определена ли функция в awk?
  • Interesting Posts

    Linux не показывает правильное имя hdd

    Искать в меньшей степени с обтеканием в EOF

    Linux sloppy mount

    Использовать sudo tee с heredoc для добавления к существующему файлу

    Как получить информацию о физическом объеме в качестве пользователя без root

    Запуск sha1sum в несколько каталогов

    Вызовите 'ps' как обычный пользователь в Linux

    Не удается экспортировать пользователя samba с помощью pdbedit. Как я могу сделать резервную копию своих пользователей самбы?

    установка debian – подключение к домашнему маршрутизатору для подключения к Интернету

    Как обеспечить, чтобы терминал оставался прокручиваемым?

    Как изменить мой скрипт для замены и добавления новой переменной в конфигурацию?

    Привязать каталог как меня

    Не удалось запустить ubuntu после установки обновлений – Stuck at 'Try (hd0,0)'

    фильтровать текстовый файл xml

    Объединение полей из строк с различным количеством полей

    Linux и Unix - лучшая ОС в мире.