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以上 |
エラー終了 |
注意事項
-
引数の配列名に「adsh」から始まる配列名を指定しないでください。指定すると,部品内部で使用している変数の名称と重複し,不当な出力結果となることがあります。
-
引数の配列名に指定できる文字列は,変数名として使用できる文字列と同じですが,指定できる文字列かどうかのチェックはしません。
使用例
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」が出力される。