110
Help us understand the problem. What are the problem?

More than 5 years have passed since last update.

posted at

updated at

grep的なPowerShellコマンドSelect-String

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

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

Register as a new user and use Qiita more conveniently

  1. You can follow users and tags
  2. you can stock useful information
  3. You can make editorial suggestions for articles
What you can do with signing up
110
Help us understand the problem. What are the problem?