如何使用 IFS 从文本文件创建多个数组?

jyo*_*786 2 array shell-script

假设我有一个文本文件 filename.txt

cat filename.txt
abc#123
def#456
Run Code Online (Sandbox Code Playgroud)

现在我想以创建两个数组的方式使用 IFS,例如:

source=(abc def)
dest=(123 456)
Run Code Online (Sandbox Code Playgroud)

创建两个单独的数组的逻辑是什么?

Ini*_*ian 7

您可以将输入文件重定向到while/read循环并将IFS值设置#为拆分行内容。应该适用于任何bash/kshzshshell。

while IFS=# read -r s d; do
    source+=( "$s" )        
      dest+=( "$d" )
done < filename.txt
Run Code Online (Sandbox Code Playgroud)