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]}')

預先感謝您的任何建議。

相關內容