web-dev-qa-db-ja.com

findで正規表現数量詞を使用する

ディレクトリに一連のファイルがあります。すべての形式はtest[0-9][0-9].txt。走れば

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

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

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

その後、何も表示されません。何が悪いのですか?

これに似た以前の質問を検索しましたが、特に関連性のある答えが見つかりません

2
ChrisW

GNU findを使用している場合、これはうまくいくはずです

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

説明

  • -regextype sed-基本的なposix正規表現を使用します(これが私が使い慣れているためです)
  • ./-相対検索のすべてのファイルパスがこのパターンで始まると見なされるため、必要です
  • [0-9]\{2\}-量指定子[0-9]括弧付きの\{...\}数字文字クラスの2つのインスタンス-エスケープされた- ごとの基本的なposix正規表現
4
the_velour_fog