PowerShellでgrep相当の検索をする
PowerShell上の標準出力を、grepコマンドのように絞り込んで表示したい時に使うテクニック
Select-Stringコマンドがそれに相当する
使い方
code:powershell
<任意のコマンド> | Select-String -Pattern <検索文字列>
PowerShell 7以降であれば、-Rawオプションの方がよりgrepコマンドに近い挙動をする
code:powershell
<任意のコマンド> | Select-String -Raw <検索文字列>
実行例
code:powershell
echo foo bar baz | Select-String -Pattern "a"
コンソール上にはbarとbazが表示される
主なオプション
-Pattern <検索文字列>
検索する文字列を指定する
正規表現を用いることもできる
正規表現として解釈されたくない場合は-SimpleMatchオプションも記述する
-Raw
検索する文字列を指定する
これは、Unix grep または Windows findstr.exe コマンドに最も似た動作になります。
PowerShellのメジャーバージョンが7以降でないと使うことが出来ない
-CaseSensitive
アルファベットの大文字と小文字を区別する
-Context <前の行>,<後ろの行>
一致した行の前後の行も一緒に出力する
-Rawでは使用できない
-AllMatches -NotMatch <検索文字列>
逆に検索文字列に一致しない行を出力する
1回のコマンド実行で-Pattenと同時に使うことは出来ない
コマンドを2回に分けて実行し、それぞれをパイプで繋げば同時に使用できる
参考
Select-String (Microsoft.PowerShell.Utility) - PowerShell | Microsoft Learn