1. ホーム
  2. regex

linux find regex

2023-10-08 14:43:55

質問

の正規表現で困っています。 find コマンドの正規表現がうまくいきません。おそらく、コマンドラインでのエスケープについて私が理解していない何かがあるのでしょう。

なぜこれらは同じではないのですか?

find -regex '.*[1234567890]'
find -regex '.*[[:digit:]]'

Bash、Ubuntu

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

文字クラスによる正規表現(例. [[:digit:]] で使われるデフォルトの正規表現構文ではサポートされていません。 find . のような別の正規表現タイプを指定する必要があります。 posix-extended のような別の正規表現を指定する必要があります。

GNU Findの正規表現を見てみましょう。 ドキュメント を見てください。すべての正規表現の型と、それらが何をサポートするかを示しています。