- バックアップ一覧
- ソース を表示
- PowerShell/文字列/文字列とファイルのテキストを検索 Select-String は削除されています。
- 1 (2016-04-29 (金) 21:02:23)
文字列とファイルのテキストを検索 Select-String
Bashのgrepとの違い
- PowerShellのSelect-StringとBashのgrepは文字列を検索するという機能は似ているが、役割は大きく違う。
- なぜかというと、Bashでは|(パイプ)で渡されるのが文字列なので、その抽出の為にgrepを多用せざるをえない。
- 一方、PSではパイプで渡されるのがオブジェクトなので、Select-Stringのような文字列検索コマンドを使う必要性がない。
- Select-String(やgrep)は文字列を検索する為のコマンドである事を理解しておく
例えば、Bashでは以下のようなコマンドは頻繁に使われるが、
Bash> ls * | grep ".txt" Bash> ps -aux | grep "/usr/bin/python"
PSでは、
PS> dir * | select-string ".txt PS> ps | select-string "chrome"
のようなコマンドは普通しない。dirからパイプに渡るのはSystem.IO.FileInfoオブジェクトであり、psからパイプに渡るのはSystem.Diagnostics.Processオブジェクトだから。つまり、
PS> dir -Path *.txt PS> ps -Name "*chrome*"
のように、オブジェクトのプロパティを参照して抽出する。