读取文件输入并将读取的行转换为数组

读取文件输入并将读取的行转换为数组

我有以下代码:Text read from file: "E" "01" "Adv - Initial" "07/11/2017"

我希望它存储在一个数组中,如下所示: array[0] = "E" array[1] = "01" array[2] = "Adv - Initial" array[3] = "07/11/2017"

我尝试过: itemData=( "$line" )在 while 循环中。但我没有得到我想要的结果。

答案1

问题之一是、、 和"Adv - Initial"会被破坏。需要玩变。Adv-InitialIFS

#/bin/bash

savIFS=$IFS
IFS=\"
array=($line)
IFS=$savIFS

echo "${array[1]}"
echo "${array[3]}"
echo "${array[5]}"
echo "${array[7]}"

答案2

你想要附加你当前的数组。为了实现这一目标,请执行以下操作:

declare -a array

声明你的数组和

array+=("$line")

将一个元素追加到数组中。

Bash 参考手册

在赋值语句将值赋给 shell 变量或数组索引(请参阅数组)的上下文中,“+=”运算符可用于追加或添加到变量的先前值。

相关内容