http://orange-factory.com/sample/utf8/code3-ef.html
こちらのサイトを元に
$ grep -E '[ア-ン]' hoge.txt
こちらの形で半角だけ検索したいのですが、全角カナもヒットしてしまいます。なぜでしょうか?
OSは何でしょう?
mac osx10.13.3になります。
locale コマンドを実行してみてください。Macにもあるかな?
$ 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=
このようになりました。
不審な点は無いですね。うーむ。
「grep -E '[ア-ン]」というスクリプトをファイルに書いて、odなりhd(あるかな?)コマンドで半角のアとンの文字コードが本当にHalfwidth Katakana variants(U+FF65〜FF9F)になっているかどうか確認してみてはどうでしょうか。凝れ、本来は-Eオプションは不要ですよね
ありがとうございます。アとンを含むテキストファイルをア=efbdb ン=efbe9dとなり、grepをshファイルにしたものも見て見ましたが、同じものが使われているようでした。。。od -avtx1 -Ad a.txt みたいな形で確認しました。
grep [アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワン]だと、意図した動きになるので何か私が勘違いしているのでしょうか。。?
http://orange-factory.com/sample/utf8/code3-e3.html どうやら、こちらの表のコードが合致している感じでした。。何が違うのだろう。。
いや。。全角と半角ですね。。なんか混乱しています。すみません。。。
ggrep '[ア-ン]'で解決しました。。
bsd grepでは日本語+正規表現が使えないということでしょうか。。?
コマンドラインから直接打つのではなく、シェルスクリプトファイルにしてから実行したらどうなりますか?どうもMacOSはコマンドラインに直接日本語を打ち込むとUTF-8ではないエンコーディングになるみたいなことを書いたWEBページがありました。
ありがとうございます。シェルスクリプトから実行しても上手くいきませんでした。。
現象が発生するデータを含めたコマンド全体を示してください。