ディレクトリにファイルセットがあり、すべて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正規表現