for 循环并追加数组列表

for 循环并追加数组列表

我是 Bash 脚本新手,目前发现自己在处理 for 循环、数组和变量赋值/替换时遇到一个小问题,我不知道如何解决。因为我确实是新的,我什至不知道如何查找。尽管任何人都可以这么说,但我强调这不是家庭作业或任何类似的东西 - 我只需要重新组织大量数据以供以后处理,并且我认为我会以某种方式完成它聪明的学习一些 Bash 的同时。

背景:我有一个目录,它本身包含三个子目录 -Folder1、Folder2、Folder3。每个子目录都有数据.txt 文件。每个 data.txt 文件都具有三列和固定行数。

目标:我想从主目录启动一个 Bash 脚本,该脚本迭代子目录并执行以下操作:

  1. 它进入并访问data.txt;
  2. 它将每一列读入相应的数组arr1arr2arr3这些在进入下一个子目录时被清空/重置);
  3. 它读arr2[0]earr1arr2[1]进入earr2、...、arr2[j-1]进入earr$j。中的数据遵循类似的结构arr3。保留earr$j过去迭代的数据并构成我想要的输出数组。每次扫描新目录时,数据都会附加到这些目录中。

这听起来过于复杂 - 但这就是我必须处理的数据结构。在大多数情况下,我已经找到了一个可行的解决方案(当然,可能不是最好的解决方案)。

问题:由于某种原因,我无法识别,每次尝试earr$j+=(${arr2[j-1]})在循环中附加 as (以及我尝试过的各种变体)时,我都会遇到各种错误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]}')

预先感谢您的任何建议。

相关内容