CSVのカラム名を取得する

bashの配列は変数名=(値1 値2 値3 値4)
配列の展開は${aaa[0から始まるインデックス]}
となる。

aaa=(1 2 3 4)
echo ${aaa[0]} #=> 1

csvファイルの一行目に
カンマ(,)区切りでカラム名が描かれているので
下のようにするとcsvのカラムを
配列に入れることができる。

headers=($(head -n 1 staff.csv | tr ',' ' '))

解説すると

  1. headコマンドでファイルの一行目に書かれているコンマ区切りのカラム名を取得する。(カラム1,カラム2,カラム3,カラム4...という形式になる。)
  2. trコマンドで"カラム1,カラム2,カラム3,カラム4"→"カラム1 カラム2 カラム3 カラム4 ..."という文字列に変更される。
  3. 変数=(値1 値2 値3 値4 )という形式になるので変数に配列を入れることができる
となっている。


Powershellの場合

$headers=(Get-Content ./staff.csv | Select-Object -Index 0) -split ","

配列に関してはPowershellの方が
操作がわかりやすいか。

コメント

人気の投稿