PowerShell で複数のテキストファイルを結合するサンプルコードを紹介します。
数ファイル程度であれば、手作業で結合するのも手間ではありませんが、大量にファイルがあり、とても人間系で出来る量のファイル数じゃない時にスクリプトを使って結合すると便利です。
スポンサーリンク
準備
まず、結合するファイルを準備します。
今回は次の2つの CSV を用意します。
#1つ目のファイル(data1.csv)
$str1 = "1,Yamada,TOKYO`n2,Suzuki,TOKYO"
$str1 | Out-File -FilePath .\data1.csv
#2つ目のファイル(data2.csv)
$str2 = "3,Ito,OSAKA`n4,Hayashi,OSAKA"
$str2 | Out-File -FilePath .\data2.csv
内容を確認
PS C:\temp> cat data1.csv
1,Yamada,TOKYO
2,Suzuki,TOKYO
PS C:\temp> cat data2.csv
3,Ito,OSAKA
4,Hayashi,OSAKA
ファイルの結合
それでは、上で作成した2つのファイルを結合する。
PowerShell でファイルを結合する方法はいくつかあるが、今回は Get-Content
と Set-Content
を使用してファイルを結合する。
Get-Content data1.csv, data2.csv | Set-Content all.csv
結合したファイルの中身を確認してみよう。
PS C:\temp> cat all.csv
1,Yamada,TOKYO
2,Suzuki,TOKYO
3,Ito,OSAKA
4,Hayashi,OSAKA
うん、いい感じに結合されていますね。
スポンサーリンク
フォルダ内のファイルを結合
ファイル指定ではなく、フォルダ内にあるテキストファイルをすべて結合するような場合は、Get-ChildItem
コマンドで対象フォルダ内にあるファイルを検索して、見つかったファイルを結合する。
#指定したフォルダのCSVファイルを検索する
$c = Get-ChildItem c:\temp -File -Recurse -Include *.csv
#見つかったCSVファイルを結合する
Get-Content $c | Set-Content all.csv
※この時、ファイルの結合順はファイル名の順になるので注意すべし
まとめ
PowerShell でファイルを結合する方法を解説してきました。
こういった小技は、知っていると作業効率アップに繋がりますね!
このコメントはブログの管理者によって削除されました。
返信削除