CSV読み込み - Import-Csv

ヘッダ指定

 Import-Csv .\users.csv -Header 'NAME', 'AGE', 'SEX', 'BIRTHDAY' | Select-Object NAME, SEX  

デフォルト(オプション指定なし)ではCSVファイルの1行目がヘッダとして扱われる。

区切り文字指定

 Import-Csv -Delimiter "`t" .\users.tsv 

タブ区切りの場合。

カラムの型を指定

 Import-Csv .\users.csv | Sort-Object { [datetime]$_.BIRTHDAY } 

あるいは、sortの後にパイプでつなげる事を考慮すると、下のようにキャストして変数を再設定する。

 Import-Csv .\users.csv | foreach { $_.BIRTHDAY = $_.BIRTHDAY -as [datetime]; $_ } | sort BIRTHDAY

なお、datetime型のカラムのフォーマットは、"2000/4/1"や"2000-04-01"や"2000/04/01 12:59:59"等が認識されて、1つのファイルの中に混在していても良い。

SJISのCSVファイルを読み込む

 Import-Csv .\users.csv -Encoding Default 
  • オプション指定なしではUnicodeが想定される。
  • DefaultがSJISなのは、多分日本語版Windowsのコードページ設定がSJISだからだと思われる。

パイプからCSVを読み込む

 Get-Content .\users.csv | ConvertFrom-Csv | Select NAME, SEX

ConvetFrom-CSVコマンドレットを使う。


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS