PowerShellはWindowsの管理を効率化するための強力なツールであり、その中でもImport-Csv
コマンドはデータ処理において非常に便利です。本記事では、Import-Csv
の基本的な使い方から応用例までを詳しく解説し、実際の使用例を交えて説明します。CSVファイルをPowerShellで扱う方法を学ぶことで、業務の自動化やデータ処理の効率を飛躍的に向上させることができます。
Import-Csvとは?
Import-Csv
は、CSV(カンマ区切り)ファイルをPowerShellのオブジェクトとして読み込むためのコマンドです。通常、CSVデータをプログラムで扱う場合、文字列として読み込み、分割して処理する必要がありますが、PowerShellのImport-Csv
を使用すると、ヘッダーをプロパティ名としてオブジェクトに変換するため、より直感的にデータを操作できます。
基本的な構文
Import-Csv -Path <ファイルパス>
例えば、以下のようなusers.csv
ファイルがあるとします。
Name,Age,Email
Alice,25,alice@example.com
Bob,30,bob@example.com
このCSVファイルをImport-Csv
で読み込むと、PowerShellのオブジェクトとして扱えるようになります。
$users = Import-Csv -Path "C:\data\users.csv"
$users
出力結果:
Name Age Email
---- --- -----
Alice 25 alice@example.com
Bob 30 bob@example.com
Import-Csvのオプション
Import-Csv
コマンドには、さまざまなオプションが用意されています。
-Delimiter(区切り文字の指定)
デフォルトではカンマ(,
)区切りですが、セミコロン(;
)区切りのファイルを読み込む場合は、-Delimiter
を指定します。
Import-Csv -Path "C:\data\users.csv" -Delimiter ";"
-Encoding(エンコーディングの指定)
CSVファイルのエンコーディングを指定できます。たとえば、UTF-8のファイルを読み込む場合:
Import-Csv -Path "C:\data\users.csv" -Encoding UTF8
-Header(ヘッダーの指定)
CSVファイルにヘッダー行がない場合、-Header
オプションを使用してカラム名を指定できます。
Import-Csv -Path "C:\data\users.csv" -Header "Name", "Age", "Email"
Import-Csvの活用例
1. CSVデータをフィルタリング
Where-Object
を使って、特定の条件に合うデータを抽出できます。
$users = Import-Csv -Path "C:\data\users.csv"
$filtered = $users | Where-Object { $_.Age -gt 25 }
$filtered
出力:
Name Age Email
---- --- -----
Bob 30 bob@example.com
2. CSVデータを並び替え
Sort-Object
を使用して、データを特定のカラムで並べ替えます。
$users | Sort-Object Age
3. CSVデータをエクスポート(Export-Csvとの連携)
データを処理した後、新しいCSVファイルとして保存することも可能です。
$filtered | Export-Csv -Path "C:\data\filtered_users.csv" -NoTypeInformation
4. CSVデータをPowerShellスクリプトで自動処理
以下のスクリプトは、指定された年齢以上のユーザーを抽出し、新しいCSVに保存する例です。
param (
[string]$InputFile = "C:\data\users.csv",
[string]$OutputFile = "C:\data\filtered_users.csv",
[int]$AgeLimit = 25
)
$users = Import-Csv -Path $InputFile
$filtered = $users | Where-Object { $_.Age -ge $AgeLimit }
$filtered | Export-Csv -Path $OutputFile -NoTypeInformation
まとめ
Import-Csv
コマンドを活用すると、PowerShellでCSVデータを簡単に読み込み、フィルタリングやソート、エクスポートなどの処理を効率的に行うことができます。特に業務で大量のデータを扱う場合、スクリプトと組み合わせることで作業の自動化が可能になります。ぜひ実際に試して、活用してみてください!