цикл for и добавление по списку массивов

цикл for и добавление по списку массивов

Я новичок в написании скриптов на Bash и в настоящее время столкнулся с небольшой проблемой при работе с циклами for, массивами и присваиванием/подстановкой переменных, которую я не знаю, как решить. Поскольку я буквальноновый, я даже не знаю, как это посмотреть. Хотя так может сказать каждый, я подчеркиваю, что это не домашнее задание или что-то в этом роде - мне просто нужно реорганизовать огромный объем данных для последующей обработки, и я подумал, что сделаю это несколькоумныйпока изучаю Bash.

Фон: У меня есть каталог, который сам содержит три подкаталога - Folder1, Folder2, Folder3. Каждый подкаталог имеетодинФайл data.txt. Каждый файл data.txt содержит три столбца с фиксированным количеством строк.

Цель: Я хочу запустить Bash-скрипт из основного каталога, который перебирает подкаталоги и выполняет следующее:

  1. он вводит и получает доступ к data.txt;
  2. он считывает каждый столбец в соответствующий массив arr1, arr2, arr3(они очищаются/сбрасываются при входе в следующий подкаталог);
  3. он читает arr2[0]в earr1, arr2[1]в earr2, ..., arr2[j-1]в earr$j. Подобная структура применяется для данных в arr3. Они earr$jсохраняют данные из прошлых итераций и составляют мои желаемые выходные массивы. С каждым проходом нового каталога данные добавляются к ним.

Звучит слишком сложно - но это структура данных, с которыми мне приходится работать. По большей части я нашел работающее решение (конечно, возможно, не лучшее).

Проблема: По какой-то причине, которую я не могу определить, я получаю всевозможные ошибки при каждой попытке добавления as earr$j+=(${arr2[j-1]})(и всевозможных вариаций, которые я пробовал) в цикле над j. Ниже приведен фрагмент, который вызывает у меня проблемы. Я был бы признателен, если бы кто-нибудь мог указать, в чем проблема, и, если возможно, предоставить рабочий пример решения.

Рассматриваемый цикл for:

for j in $(seq 1 $number_of_lists); do echo "(${arr2[j-1]})"; earr$j+=(${arr2[j-1]}); echo "(${arr3[j-1]})"; done

В частности, у меня проблема с этой earr$j+=(${arr2[j-1]})частью. Вот мой вывод ошибки:

./next.sh: line 33: syntax error near unexpected token "${arr2[j-1]}'' и ./next.sh: line 33: earr$j+=('${arr2[j-1]}').

Заранее спасибо за любые предложения.

Связанный контент