CSVファイルを読み込んで指定列でソートして出力するPowerShellのサンプルコード

PowerShell
記事内に広告が含まれています。

CSVファイルを読み込んで指定列でソートして出力するPowerShellのサンプルコードを紹介します。

《広告》

実行イメージ

テキストファイルをCSVファイルとして読み込みます。

CSVファイルの特定の列をキーにしてソートします。

例えば以下のような並べ順です。

  • 年齢 ⇒ 昇順
  • プログラミング経験 →降順

フォルダ構成は以下のような感じです。

  • 入力ファイル
  • 出力ファイル(ソートの実行結果)
  • powershellの実行ファイル

ソースコード

以下のコマンド、ps1ファイル、入力ファイル(サンプル)を準備しておきます。

コマンド

powershell -ExecutionPolicy RemoteSigned -File "sortCsvFile.ps1"

サンプルコード:fileSort.ps1

# CSVファイル入力
$getContent = Import-Csv .\01.input.csv -Encoding UTF8

# 年齢(昇順)、プログラミング経験(降順)でソート
$getSorted = $getContent |Sort-Object -Property @{Expression = "年齢"; Descending = $false} ,
                                                @{Expression = "プログラミング経験"; Descending = $true} 
# CSVファイル出力
$getSorted | Export-CSV .\02.output.csv -Delimiter "," -Encoding utf8 -NoTypeInformation

入力ファイル:01.input.csv

ID,名前,年齢,プログラミング経験
2222,山田次郎,12,3
1111,山田太郎,11,3
3333,山田三郎太,13,3
4444,山田四郎,14,3
6666,山田六郎,16,3
7777,山田七郎,16,4
5555,山田五郎,15,3

テスト実行

実行手順

PowerShellのターミナルからSortCsvFile.ps1を実行するコマンドを打ちます。

実行結果

実行すると、出力ファイル「02.output.csv」の更新日時が新しくなっています。

そして出力ファイル「02.output.csv」を開きます。

ファイルの中身が「年齢」と「プログラミング経験」でソートされていることが確認できました。

参考情報

環境

下記の環境で作成・実行しております。

No.環境バージョン
1OSWindows11
2PowerShell7.5.4
環境一覧

以上です。

田舎のエンジニア

日本の田舎に住むITエンジニアです。
新卒からしばらくは東京都内で働いていましたが、30歳を過ぎた頃に自分の生き方を見直し、地方へ移住しました。
現在はノーコード、クラウド(Azure)、C# などを中心に、個人的な検証や学習を続けています。
自宅ではできるだけコストをかけず、実際に手を動かしながら試すことを大切にしています。
このブログでは、個人で取り組んだ技術的な試行錯誤や気づきを記録しています。

田舎のエンジニアをフォローする