如何逐行读取文件并将每个行值存储在不同的数组变量中。例如,file.txt
包含以下行:
abc;2;1;3;4;5;6;7
cba;1;2;3;4;5;6;7;8;9;
......
.......
所以我需要逐行阅读并将每个由分隔符分隔的行值存储在不同的变量中。喜欢第1行
arr[0]=abc, arr[1]=2, arr[2]=1 and so on
并且在读完第一行后,它将读取第2行并将其值存储为:
arr[0]=cba, arr[1]=1, arr[2]=2 and so on
我试过下面的代码
while read line
do
arr+=("$line")
done <$file
for ((i=0; i < ${#arr[*]}; i++))
do
echo "${arr[i]}"
done
但在这种情况下,我在arr[i]
逐行完整。我需要将这个行的值存储在seprate变量中,如上所述。
答案 0 :(得分:1)
假设你正在使用bash:
while read line; do
varname=${line%%;*}
IFS=';' read -a $varname <<< $line
done < file
read -a
$ echo ${abc[0]} ${abc[1]}
abc 2
$ echo ${cba[0]} ${cba[1]}
cba 1