亀の甲羅2

今日もまた朝とく起きて励まなん窓に明るきありあけの月

Powershell Select-String (いわゆるGrep)

ファイルからGrepする方法の基本。

データファイル

データファイル:data.txt

データファイル

プロパティ1[ラーメン]
プロパティ2[晴れ]
プロパティ3[2023/4/15]
プロパティ4[伊藤博文]
プロパティ5[犬養毅]
プロパティ6[ABC]
プロパティ7[あああああ]
プロパティ8[いいいいい]
プロパティ9[ううううう]
プロパティ10[2023/4/11べりべり。
うんこしました。
すっきりしました。]

方法1:get-contents + Select-String

$path = JOIN-PATH ([System.Environment]::GetFolderPath("Desktop")) "data.txt"

$a = Get-Content -path $path -Encoding UTF8

$a | Select-String -Encoding UTF8 -Pattern 'プロパティ9'

※ $aはString配列?になっている。つまりGet-Contentsは行末(改行?)をセパレータとして、1行ごと配列に格納してくれる。

実行結果

プロパティ9[ううううう]

方法2:Select-String 単独

Select-String自体がファイル読込機能があるので、Get-Contentsで読み込まなくても直接Grepすることもできる。

$path = JOIN-PATH ([System.Environment]::GetFolderPath("Desktop")) "data.txt"

(Select-String -Path $path -Encoding UTF8 -Pattern 'プロパティ9').Line

実行結果

プロパティ9[ううううう]