Hatena::ブログ(Diary)

nn2003rの日記

2011-02-14

PowerShellでCSVファイルの取り込みまたは出力を行うには

PowerShellCSVファイルを取り込みまたは、出力することはとても簡単です。

CSVのサンプルファイルとして下記のようなファイルがあったとします。

c:\temp\test.csv

test.csvファイルの中身

col1,col2,col3,col4
a,b,c,d
d,e,f,g
h,i,j,k

CSVファイルの1行目がヘッダーとなっており、2行目以降がデータです。

区切り文字としてカンマを使用しています。

CSVファイルを取り込むには、Import-Csvコマンドを使用します。

Import-Csv c:\temp\test.csv

col1                          col2                          col3                          col4
----                          ----                          ----                          ----
a                             b                             c                             d
d                             e                             f                             g
h                             i                             j                             k

取り込んだCSVから特定の項目を抽出するには、Select-Objectコマンドを使用します。

Import-Csv c:\temp\test.csv | Select-Object col1,col2

col1                                                        col2
----                                                        ----
a                                                           b
d                                                           e
h                                                           i

さらにデータを条件で抽出したい場合には、Where-Objectコマンドを使用します。

Import-Csv c:\temp\test.csv | Select-Object col1,col2 | Where-Object {$_.col1 -eq "d"}

col1                                                        col2
----                                                        ----
d                                                           e

さらに結果をソートする場合は、Sort-Objectコマンドを使用します。

Import-Csv c:\temp\test.csv | Select-Object col1,col2 | Where-Object {$_.col1 -eq "d"} | Sort-Object col1

CSVにデータを出力する場合、Export-Csvコマンドを使用します。

下記の例では、Get-ChildItemコマンドの実行結果をc:\temp\item.csvCSVファイルとして出力します。

Get-ChildItem | Export-csv c:\temp\item.csv
トラックバック - http://d.hatena.ne.jp/nn2003r/20110214/1297695323