日別アーカイブ: 2018年11月17日

Powershellで列が複数あるCSVを読み込む

以前ファイルの整理のためにファイル一覧をCSVに書き出したり、逆にImport-Csvコマンドレットで読み込む方法を調べました。

このImport-Csvコマンドレットですが、複数列あるCSVを読み込むとどうなるか気になったので、試してみることにしました。

試しに以下のようなカンマ区切りのCSVを作成します。

ID,名前
1,りんご
2,ぶどう
3,あんず

これをImport-Csvで読み込むと、以下のように読み取ってくれます。1行目がヘッダとして自動認識されます。

ID 名前
— —-
1 りんご
2 ぶどう
3 あんず
4 なし

この中から特定の値を取り出したい場合、変数に格納した上で処理ができます。

仮にC:\hoge内に”table.csv”があったと仮定すると、

cd C:\hoge

#CSVを読み込んで変数に格納
$csv Import-Csv table.csv

#添字”2”の"名前"の値を取り出す
$csv[2].名前

CSVを格納した変数には配列の要領でアクセスが可能です。例では添字を2にして名前の値を取り出しています。これを実行すると結果は”あんず”と出てきます。2なら”ぶどう”ではないのかと思うのですが、Powershellの配列の添字は0から始まっているので、2は”3番目の値”を示すことになります。

まだ触りだしたばかりでCSVと配列についてはこの程度しか理解できていないのですが、これも結構使い出がありそうに思えます。