【mac】grepで半角カナを検索できずにハマった
以下のコマンドでいけると思ったのだが意図した動きにならずに色々調べるハメになったのでメモしておく。
$ grep '[ア-ン]' file
使われているロケール、文字コードが正しいか?
$ locale LANG="ja_JP.UTF-8" LC_COLLATE="ja_JP.UTF-8" LC_CTYPE="ja_JP.UTF-8" LC_MESSAGES="ja_JP.UTF-8" LC_MONETARY="ja_JP.UTF-8" LC_NUMERIC="ja_JP.UTF-8" LC_TIME="ja_JP.UTF-8" LC_ALL=
問題なさそうだった
[ア-ン]の指定の仕方は正しいのか?
http://orange-factory.com/sample/utf8/code3-ef.html
こちらを見るとア=EFBDA7 ン=EFBE9Dの範囲でちゃんと連続しているので問題なさそう。
日本語が使えない?
$ grep [0-9] file
これだと意図した動きになる
$ grep [ア-ン] file
これでも意図した動きにならない
借りてるVPS(CentOS6)だと日本語でも意図した動きになる
$ grep -V grep (BSD grep) 2.5.1-FreeBSD
$ grep -V grep (GNU grep) 2.20
BSDとGNUでgrepの系統が違うぽい。
その後調べるとhomebrewでggrepというのが入れられぽい。
$ brew install ggrep $ ggrep -V ggrep (GNU grep) 3.1
$ ggrep '[ア-ン]' file
検索できた!