• 追加された行はこの色です。
  • 削除された行はこの色です。
* 文字列とファイルのテキストを検索 Select-String [#t2ce8b5f]

** Bashのgrepとの違い [#d4ebc37b]

- 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*"
のように、オブジェクトのプロパティを参照して抽出する。



トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS