• バックアップ一覧
  • ソース を表示
  • 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*"

のように、オブジェクトのプロパティを参照して抽出する。


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