🎃

Macでggrepを使おう

2024/09/04に公開

概要

  • MacとLinuxのGrepはバイナリが違うためオプションが異なる。ネット記事にはLinuxのGNU版Grepの記事が多いためMac内のGrepではエラーになることがある
  • Brew使ってGNU版Grepを落としてきてggrepコマンドとして使う方法がある
  • 個人で使う範囲ならggrepにしたほうが楽

brewのggrepはここ
https://formulae.brew.sh/formula/grep

(参考)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