PowerShellでCSVファイルを読み取り、変数に格納し出力を行う方法

powershell

PowerShellでCSVファイルを読み取り、変数に格納し出力を行いたいときはないでしょうか。

ただ、いざ使おうにもやり方がわからなかったり、すぐに出てこないものですよね。

今回はそんなときに便利な、

PowerShellを使用してCSVファイルを読み取り、データを変数に格納し、その内容を出力する方法

について説明します。

基本的なCSVファイルの読み取り

PowerShellでCSVファイルを読み取るためには、Import-Csvコマンドレットを使用します。
このコマンドレットは、CSVファイルの内容をオブジェクトとして読み込みます。

ファイルを読み取る

以下のようなCSVファイルdata.csvがあるとします。

名前,年齢,職業
高橋,30,ITエンジニア
加藤,25,Webデザイナー
折場,35,大学教授

このファイルを読み取るには、次のコマンドを使用します。

$csvData = Import-Csv -Path "data.csv"

タカヒロ
タカヒロ
CSVファイルはUTF-8の文字コードに指定してください。Shift-Jisですと文字化けとなり、うまく抽出されません。

CSVファイルのデータを変数に格納

Import-Csvコマンドレットを使用してCSVファイルを読み取ると、そのデータはカスタムオブジェクトとして変数に格納されます。

各行はオブジェクトの1つの要素となり、列はオブジェクトのプロパティとして扱われます。

内容を確認する

上記のコマンドで読み取った$csvDataの内容を確認するには、次のコマンドを使用します。

$csvData

以下のような出力が得られます。

名前 年齢 職業
---- ---- ------
高橋 30 ITエンジニア
加藤 25 Webデザイナー
折場 35 大学教授

データの出力方法

変数に格納したデータをさまざまな形式で出力することができます。
最も一般的な方法はWrite-OutputFormat-Tableを使用することです。

テーブル形式で出力

変数$csvDataの内容をテーブル形式で出力するには、次のコマンドを使用します。

$csvData | Format-Table -AutoSize

これにより、以下のような出力が得られます。

名前 年齢 職業
---- ---- ------
高橋 30 ITエンジニア
加藤 25 Webデザイナー
折場 35 大学教授

実行例と応用

実際の例を通して、CSVファイルの読み取りから出力までの流れを確認してみましょう。

例: CSVファイルを読み取り、特定の列を出力する

data.csvファイルを読み取り、名前職業列のみを出力する場合のスクリプトは次のとおりです。

# CSVファイルの読み取り
$csvData = Import-Csv -Path "data.csv"

# 特定の列を選択して出力
$csvData | Select-Object 名前, 職業 | Format-Table -AutoSize

このスクリプトを実行すると、以下のような出力が得られます。

名前  職業
----  ------
高橋  ITエンジニア
加藤  Webデザイナー
折場  大学教授

例: CSVファイルのデータをフィルタリングして出力

年齢が30以上の人のみを出力するスクリプトは次のとおりです。

# CSVファイルの読み取り
$csvData = Import-Csv -Path "data.csv"

# フィルタリングして出力
$csvData | Where-Object { $_.年齢 -ge 30 } | Format-Table -AutoSize

このスクリプトを実行すると、以下のような出力が得られます。

名前 年齢 職業
---- ---- ------
高橋 30 ITエンジニア
折場 35 大学教授

さいごに

いかがでしょうか。

今回は、
PowerShellを使用してCSVファイルを読み取り、データを変数に格納し、その内容を出力する方法について説明しました。

これらのスクリプトを応用して、様々なデータ処理のニーズに対応することができます。

また、他にも便利な方法がありますので、よろしければご参照頂ければと思います。



この記事の関連キーワード

こちらの記事の関連キーワード一覧です。クリックするとキーワードに関連する記事一覧が閲覧できます。







コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA ImageChange Image