Bash

讀取多個文件並對儲存的數組進行操作

  • January 14, 2019

我有 2 個文本文件"${LinkP}""${QuestionP}. 我想讀取這些文件並將每個完整的行儲存在相應的數組中,

IFS=$'\r\n' GLOBIGNORE='*' command eval "LinkA=($(cat "${LinkP}"))"
IFS=$'\r\n' GLOBIGNORE='*' command eval "QuestionA=($(cat "${QuestionP}"))"

現在我想使用 for 循環對這些進行操作

nLink=${#LinkA[@]} # Size of array
for ((i = 0; i < nLink; i = i + 1)); do
   echo $i
   Question=${QuestionA[i]}
   echo "Question=${QuestionA[i]}"
done

但是,該Question變數不包含整行,它在每個空格字元後中斷。

如何將每個問題和連結(相應文件中的完整行)儲存在這些變數中並在 for 循環中處理它們。

將每個完整的行儲存在相應的數組中

用不同的方法很容易:

mapfile LinkA < "$LinkP"

查看help mapfile更多選項,例如-t從每行中刪除尾隨分隔符。

引用自:https://unix.stackexchange.com/questions/494321