ファイル入力の読み出しと読み出しラインを配列に変換

ファイル入力の読み出しと読み出しラインを配列に変換

次のコードがあります。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

問題の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")

配列に要素を追加します。

バッシュリファレンスマニュアル:

シェル変数または配列インデックス(配列を参照)に値を割り当てる割り当てステートメントのコンテキストでは、「+ =」演算子を使用して変数の以前の値に追加または追加できます。

関連情報