【PowerShell】Linuxのgrepのように文字列を検索する


この記事はプロモーションを含みます。

PowerShell

ホーム > PowerShell 逆引きリファレンス

PowerShellでLinuxのgrepと同等の文字列検索を行う方法を解説!
基本的な使い方から便利なオプションの活用例まで紹介します。

はじめに

本記事では、PowerShellで文字列検索する方法の1つとして、Select-Stringコマンドレットを使用する方法を解説します。
Select-Stringは、PowerShellでファイルやテキスト内の特定の文字列を検索するためのコマンドレットです。
Linuxのgrepに近い動作をするため、テキスト操作の効率を大幅に向上させます。

基本的な使い方

以下は、ファイル内で特定の文字列を検索する基本的な構文です。

Select-String -Path "ファイルのパス" -Pattern "検索文字列"

では、実際の使用例を見ていきたいと思います。
下記の住所が書かれているテキストファイル「住所.txt」から「中央区」を含む行を取得してみます。

1. 東京都新宿区西新宿1-1-1
2. 大阪府大阪市北区梅田2-2-2
3. 福岡県福岡市中央区天神3-3-3
4. 北海道札幌市中央区北4条西4丁目4-4
5. 愛知県名古屋市中村区名駅5-5-5
6. 京都府京都市下京区四条通6-6-6
7. 広島県広島市中区紙屋町7-7-7
8. 神奈川県横浜市西区みなとみらい8-8-8
9. 埼玉県さいたま市大宮区桜木町9-9-9
10. 千葉県千葉市中央区富士見10-10-10

以下が実行例となります。
実行結果として、検索元のファイル名:行番号:検索文字列を含む行 が出力されます。

PS C:\Workspace> Select-String -Path ".\住所.txt" -Pattern "中央区"

住所.txt:3:3. 福岡県福岡市中央区天神3-3-3
住所.txt:4:4. 北海道札幌市中央区北4条西4丁目4-4
住所.txt:10:10. 千葉県千葉市中央区富士見10-10-10

大文字小文字を区別する

「-CaseSensitive」オプションを使用することで、大文字小文字を区別します。

Select-String -Path "ファイルのパス" -Pattern "検索文字列" -CaseSensitive

では、実際の使用例を見ていきたいと思います。
下記の様々な果物が書かれているテキストファイル「fruits.txt」から「Apple」を含む行を取得してみます。

1. apple orange grape
2. Banana kiwi grape
3. Apple banana kiwi
4. grape Kiwi Banana
5. Orange BANANA apple
6. Apple banana GRAPE

以下が実行例となります。
小文字のみの「apple」は取得されず、先頭だけ大文字の「Apple」を含む行のみが取得されていることが分かります。

PS C:\Workspace> Select-String -Path "fruits.txt" -Pattern "Apple" -CaseSensitive

fruits.txt:3:3. Apple banana kiwi
fruits.txt:6:6. Apple banana GRAPE

いずれかが一致するものを取得する

「検索文字列1|検索文字列2」のように記述することで、いずれか検索文字列が一致するパターンを取得することが可能です。

Select-String -Path "ファイルのパス" -Pattern "検索文字列1|検索文字列2"

では、実際の使用例を見ていきたいと思います。
下記の様々な果物が書かれているテキストファイル「フルーツ.txt」から「りんご」か「みかん」を含む行を取得してみます。

1. ぶどう メロン なし
2. さくらんぼ もも すいか
3. りんご なし ぶどう
4. メロン バナナ なし
5. みかん りんご メロン
6. バナナ ぶどう さくらんぼ
7. みかん すいか ぶどう
8. メロン りんご さくらんぼ
9. ぶどう バナナ メロン
10. もも すいか なし

以下が実行例となります。
「りんご」または「みかん」が含まれている行が取得されています。

PS C:\Workspace> Select-String -Path "フルーツ.txt" -Pattern "りんご|みかん"

フルーツ.txt:3:3. りんご なし ぶどう
フルーツ.txt:5:5. みかん りんご メロン
フルーツ.txt:7:7. みかん すいか ぶどう
フルーツ.txt:8:8. メロン りんご さくらんぼ

最後に、PowerShellのSelect-Stringは、テキスト操作をより簡単かつ効率的にします。
オプションを駆使することで、さらに多様なシナリオで活用可能です。

コメント

タイトルとURLをコピーしました