1. ホーム
  2. regex

[解決済み] (grep) 非 ASCII 文字にマッチする正規表現ですか?

2022-02-19 04:55:01

質問

Linuxで、私はたくさんのファイルを持つディレクトリを持っています。それらのいくつかは非ASCII文字を持っていますが、それらはすべて有効です。 UTF-8 . あるプログラムにはASCII以外のファイル名で動作しないバグがあり、どれくらいの数が影響を受けているのかを調べなければなりません。私はこれを find を行い、その後に グレップ を実行して非ASCII文字を表示し、さらに wc -l を検索してください。grepである必要はなく、標準的なUnixの 正規表現 のように パール , セッド , AWK など。

しかし、「ASCII文字でない任意の文字」を表す正規表現はあるのだろうか。

どのように解決するのですか?

ASCII以外の1文字にマッチします。

[^\x00-\x7F]

これは有効な PCRE ( パール互換の正規表現 ).

また POSIX という短縮形があります。

  • [[:ascii:]] - は単一の ASCII 文字にマッチします。
  • [^[:ascii:]] - は単一の非 ASCII 文字にマッチします。

[^[:print:]] で十分でしょう。