正規表現数量子を使用して[重複]を見つける

正規表現数量子を使用して[重複]を見つける

ディレクトリにファイルセットがあり、すべてtest[0-9][0-9].txt

find . -regex ".*/(test)[0-9][0-9]\.txt"

これですべてのファイルが表示されますが、実行すると

find . -regex ".*/(test)[0-9]{2}\.txt"

これで何も表示されません。私は何が間違っていましたか? !

以前は同様の質問を検索しましたが、特に関連する回答が見つかりませんでした。

答え1

findを使っているなら、GNUこれがうまくいくでしょう。

 find . -regextype sed -regex "./test[0-9]\{2\}.txt"

説明する

  • -regextype sed- 基本posix正規表現を使用する(ただ私が慣れているので)
  • ./- findが相対検索のすべてのファイルパスをこのパターンで始まると見なすため、必要です。
  • [0-9]\{2\}[0-9]- 数量子カッコがエスケープされた数値文字クラスのインスタンス2つ\{...\}- それぞれ基本POSIX正規表現

関連情報