![正規表現数量子を使用して[重複]を見つける](https://linux33.com/image/78007/%E6%AD%A3%E8%A6%8F%E8%A1%A8%E7%8F%BE%E6%95%B0%E9%87%8F%E5%AD%90%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%97%E3%81%A6%5B%E9%87%8D%E8%A4%87%5D%E3%82%92%E8%A6%8B%E3%81%A4%E3%81%91%E3%82%8B.png)
ディレクトリにファイルセットがあり、すべて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正規表現