Hitachi

Advanced Shell 


10.3.32 csvToArray(CSVデータの2次元配列への格納)

形式

csvToArray  配列名  [ファイルパス名]

機能

引数に指定されたCSVファイルのデータを2次元配列に格納します。具体的には,コンマで区切られたデータを2次元配列の各要素の値として格納します。CSVデータと2次元配列の要素の対応例を次に示します。

CSVデータ(data.csv)
name,value,id
Yokohama,200,1
Kawasaki,100,2

2次元配列(array)の要素とCSVデータ(data.csv)の対応
array[0][0]=name
array[0][1]=value
array[0][2]=id
array[1][0]=Yokohama
array[1][1]=200
array[1][2]=1
array[2][0]=Kawasaki
array[2][1]=100
array[2][2]=2

なお,CSVデータのフィールドの前後を囲むダブルクォートは,削除されて格納されます。また,フィールド内で2つ連続して記述されたダブルクォートは,1つのダブルクォートと解釈して格納されます。

CSVデータ

2次元配列に格納されるデータ

"abc"

abc

"a""b""c"

a"b"c

引数

配列名

データを格納する配列名を指定します。

ファイルパス名

CSVファイルのパスを指定します。ファイルパス名を指定しない場合,標準入力から入力します。

入力できるCSVデータのサイズは,100KB以下を対象としています。100KBより大きいサイズのデータを入力すると,ジョブの実行時間が長大化する可能性があります。

終了コード

終了コード

意味

0

正常終了

1以上

エラー終了

注意事項

使用例

CSVデータ(data.csv)
name,value,id
Yokohama,200,1
Kawasaki,100,2

# CSVファイルのデータを2次元配列に格納する。
csvToArray array data.csv
echo "${array[1][0]}"        # 「Yokohama」が出力される。
echo "${array[1][1]}"        # 「200」が出力される。

# CSVファイルから1行目を除いたデータを2次元配列に格納する。
"${ADSH_DIR_CMD}awk" '{if(FNR!=1){print $0}}' data.csv | csvToArray array
echo "${array[0][0]}"        # 「Yokohama」が出力される。
echo "${array[0][1]}"        # 「200」が出力される。