PowerShellでCSVファイルを読み取り、変数に格納し出力を行いたいときはないでしょうか。
ただ、いざ使おうにもやり方がわからなかったり、すぐに出てこないものですよね。
今回はそんなときに便利な、
について説明します。
もくじ
基本的なCSVファイルの読み取り
PowerShellでCSVファイルを読み取るためには、Import-Csv
コマンドレットを使用します。
このコマンドレットは、CSVファイルの内容をオブジェクトとして読み込みます。
ファイルを読み取る
以下のようなCSVファイルdata.csv
があるとします。
名前,年齢,職業
高橋,30,ITエンジニア
加藤,25,Webデザイナー
折場,35,大学教授
このファイルを読み取るには、次のコマンドを使用します。
$csvData = Import-Csv -Path "data.csv"
CSVファイルのデータを変数に格納
Import-Csv
コマンドレットを使用してCSVファイルを読み取ると、そのデータはカスタムオブジェクトとして変数に格納されます。
各行はオブジェクトの1つの要素となり、列はオブジェクトのプロパティとして扱われます。
内容を確認する
上記のコマンドで読み取った$csvData
の内容を確認するには、次のコマンドを使用します。
$csvData
以下のような出力が得られます。
名前 年齢 職業
---- ---- ------
高橋 30 ITエンジニア
加藤 25 Webデザイナー
折場 35 大学教授
データの出力方法
変数に格納したデータをさまざまな形式で出力することができます。
最も一般的な方法はWrite-Output
やFormat-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ファイルを読み取り、データを変数に格納し、その内容を出力する方法について説明しました。
これらのスクリプトを応用して、様々なデータ処理のニーズに対応することができます。
また、他にも便利な方法がありますので、よろしければご参照頂ければと思います。
コメントを残す