读取多个文件并对存储的数组进行操作

读取多个文件并对存储的数组进行操作

我有 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 循环内处理它们。

答案1

将每个完整行存储在各自的数组中

使用不同的方法很容易:

mapfile LinkA < "$LinkP"

请参阅help mapfile参考资料 来了解更多选项,例如-t从每行中删除尾随定界符。

相关内容