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#などをよくやります。
ただ少し金欠になった都合で、自宅ではコストのかからないことをしています。
モノ作りがとても好きです。

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