web-dev-qa-db-ja.com

ファイル入力を読み取り、読み取った行を配列に変換します

私は次のコードを持っています:_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ループで。しかし、私は私が望む結果を得ることができません。

2
Berni

問題の1つは、"Adv - Initial"Adv-、およびInitialで壊れることです。 IFSを変更して遊ぶ必要があります。

#/bin/bash

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

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

現在の配列を追加したいとします。これを達成するには

declare -a array

配列を宣言し、

array+=("$line")

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

Bashリファレンスマニュアル

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

0
ADDB