1から99までの数字で終わるすべてのファイルを検索し、他のファイルはすべて除外する検索コマンド文字列を作成しようとしています。
例えばmyfile1 myfile99を検索したいmyfile456は検索せず、-myfilebackupは検索しない
私が考えている正規表現はmyfile[1-9]{1,2}
しかし、これをfindで動作させることはできません。
find . -regex '.*myfile[0-9]{1,2}'
OR find . -iname 'myfile[0-9]{1,2}'
私が見ることができるものから、それは{1,2}
機能していない部分。
(ところで-name -regex
交換可能ですか?)
助けてくれてありがとう。
あなたは試すことができます
find . -regex '.*myfile[0-9][0-9]?'
または
find . \( -name "myfile[0-9][0-9]" -o -name "myfile[0-9]" \)
GNU findがある場合、別の正規表現タイプを使用できます:
find . -regextype sed -regex '.*myfile[0-9]\{1,2\}'
GNU find
は neuteredEmacs正規表現構文 をデフォルトで使用します-Emacsは\{from,to\}
構文ですが、少なくともGNU find
はサポートしていません。
奇妙なことに、リファレンスマニュアルにはsed
正規表現構文に関するセクションが含まれていないため、サポートされている部分を知っているのはだれですか。