🎃
Macでggrepを使おう
概要
- MacとLinuxのGrepはバイナリが違うためオプションが異なる。ネット記事にはLinuxのGNU版Grepの記事が多いためMac内のGrepではエラーになることがある
- Brew使ってGNU版Grepを落としてきてggrepコマンドとして使う方法がある
- 個人で使う範囲ならggrepにしたほうが楽
brewのggrepはここ
(参考)https://stackoverflow.com/questions/16658333/grep-p-no-longer-works-how-can-i-rewrite-my-searches
Grepで正規表現を使いたい場合はPオプションが引っかかるがMacのBSD版Grepにはオプションが存在しないためエラーになる。
# grepコマンドを使うもエラーになる
$ grep -o -P '(?<=<st:italic>).*(?=</italic>)' file.txt
grep: invalid option -- P
なので以下のようにgrepの代わりにggrepにしよう
$ brew install grep
# ログからエラーを探すサンプル
$ ggrep -P "^ERROR" log.txt
Discussion