grep: 日本語漢字を含むすべての行を検索

grep: 日本語漢字を含むすべての行を検索

巨大なUTF-8テキストファイルに日本語を含むすべての行を表示したいです。漢字。これは
grep(または他の)表現ですか?

\u4e00私の記憶が正しい場合、漢字はとの間の文字です\u4dbf

見せる必要はありません。カナスしかし、彼らにも見せることは大きな問題ではありません。

ベストアンサー1

(巨大な表を使用せずに)日本語漢字と日本語で使用されていない漢字表の文字(中国語や韓国語の変形など)を区別することは不可能です。

デフォルトの範囲(\u4e00〜\u9fff)の漢字表の文字を検出したい場合は、3バイトにエンコードされます。最初のバイトは常に0xe4と0xe9の間で、2番目と3バイトは0x80と0xbfの間です。

これには2つの困難があります。まず、文字以外のバイトを処理したいとgrepに指示してから、0xe4、0xe9、0x80、および0xbfバイトを入力して正規表現に入れる必要があります。

-Pスイッチが望むラインは次のとおりです。

grep -P "[\xe4-\xe9][\x80-\xbf][\x80-\xbf]"

仮名も必要な場合:

grep -P "[\xe4-\xe9][\x80-\xbf][\x80-\xbf]|\xe3[\x81-\x83][\x80-\xbf]"

おすすめ記事