for loop y agregar una lista de matrices

for loop y agregar una lista de matrices

Soy nuevo en las secuencias de comandos Bash y actualmente me encuentro lidiando con un pequeño problema al trabajar con bucles for, matrices y asignación/sustitución de variables que no sé cómo resolver. Ya que estoy literalmentenuevo, Ni siquiera sé cómo buscar esto. Aunque cualquiera podría decir esto, hago hincapié en que esto no es tarea ni nada por el estilo: solo necesito reorganizar una enorme cantidad de datos para su posterior procesamiento y pensé en hacerlo de una manera un tantoelegantemanera mientras aprende algo de Bash.

Fondo: Tengo un directorio que a su vez contiene tres subdirectorios: Carpeta1, Carpeta2, Carpeta3. Cada subdirectorio tieneunoarchivo datos.txt. Cada archivo data.txt presenta tres columnas con un número fijo de filas.

Meta: Quiero iniciar un script Bash desde el directorio principal que itera sobre los subdirectorios y realiza lo siguiente:

  1. ingresa y accede al data.txt;
  2. lee cada columna en la matriz correspondiente arr1, arr2( arr3éstas se vacían/restablecen al ingresar al siguiente subdirectorio);
  3. se lee arr2[0]en earr1, arr2[1]en earr2, ..., arr2[j-1]en earr$j. Se sigue una estructura similar para los datos en arr3. Mantienen earr$jlos datos de iteraciones pasadas y constituyen mis matrices de salida deseadas. Con cada barrido de un nuevo directorio, se agregan datos a estos.

Suena demasiado complicado, pero esa es la estructura de los datos con la que tengo que trabajar. En su mayor parte, he descubierto una solución que funciona (por supuesto, probablemente no sea la mejor).

Problema: Por alguna razón que no puedo identificar, recibo todo tipo de errores con cada intento de agregar como earr$j+=(${arr2[j-1]})(y todo tipo de variaciones que he probado) en un bucle j. A continuación se muestra el fragmento que me causa problemas. Agradecería que alguien pudiera señalar cuál es el problema y, si es posible, proporcionar un ejemplo práctico de una solución.

El bucle for en cuestión:

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

En particular, tengo problemas con la earr$j+=(${arr2[j-1]})pieza. Esta es mi salida de error:

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

Gracias de antemano por cualquier sugerencia.

información relacionada