LoginSignup
127
114

More than 5 years have passed since last update.

grep的なPowerShellコマンドSelect-String

Last updated at Posted at 2014-01-20

Unix系で使われるgrepに近いコマンドはないかと探したところSelect-Stringというコマンドがありました。
凝った使い方だと違いますが、概ねgrepの様にしていいようです。
CSVファイルに「D00」を含む行だけを表示させてみました。

PS > $A = b:\C1-001.csv
PS > echo $A | Select-String "D00"

これで「D00」を含む行だけが表示されます。

正規表現を使用する場合には-Patternオプションを付けて

PS > echo $A | Select-String -Pattern "^D"

とかすればいいようです。

ちなみにCompare-Objectなど結果が配列で出力されるデータは

@{InputObject=D00,261,1,110,; SideIndicator=<=}
@{InputObject=D00,256,1,111,; SideIndicator=<=}
@{InputObject=D00,260,1,112,; SideIndicator=<=}

こんな感じで表示されました。
できれば整形したいですね…。

Windows PowerShell プロファイルにエイリアスとして登録しておいても良いかもしれません

Set-Alias grep Select-String

でも細部の振る舞いが違いそうなので注意が必要です。

2014年4月10日追記

書き出しにある

PS > $A = b:\C1-001.csv
PS > echo $A | Select-String "D00"

という書き方ですが、変数に入れなくてもgrep同様コマンドがテキストファイルを開いて表示させることができます。

PS > Select-String "D00" b:\C1-001.csv

のような書き方をしても同じ表示になりました。

127
114
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
127
114