find
コマンドを正規表現で使用して、6桁の整数を含むファイル名と一致させようとしています。私が代わりにこれを行う場合正規表現:6桁の整数でファイル名を一致させようとしています
./flmyptd2root-Se82.2nubb-000005.root
./flmyptd2root-Se82.2nubb-000001.root
./flmyptd2root-Se82.2nubb-000004.root
./flmyptd2root-Se82.2nubb-000000.root
./flmyptd2root-Se82.2nubb-000003.root
./flmyptd2root-Se82.2nubb-100000.root
./flmyptd2root-Se82.2nubb-000002.root
それは動作します:
EVENT_GENERATOR="Se82.2nubb"
find ./ -type f -regex "^./flmyptd2root-$EVENT_GENERATOR-[0-9]{6}.root$"
そして、ここでファイル名は、私が一致することを期待している:
この
は私が実行しているコマンドですfind ./ -type f -regex "^./flmyptd2root-$EVENT_GENERATOR-[0-9]*.root$"
しかし、最初の式がなぜそうでないのかわかりません。 (*
は[0-9]
を何度も繰り返すので、すべての整数を選択すると思います)
6桁の整数だけを選択するにはどうすればよいですか?
範囲指定子はPOSIX BREでエスケープする必要があるためです。 –
* "...これはすべての可能な整数を選択すると思いますか?" *:数字をまったく含まない –