たとえば、ディレクトリ内の「m」または「sh」で終わるすべてのファイルを検索したいとします。以下は正しく実行されます。
find . -regex '.*.m' -o -regex '.*.sh'
しかし、これは失敗します。
find . -regex '.*.(m|sh)'
私は何が間違っていましたか?
答え1
ちょうど地獄から脱出しました:
find . -regex '.*.\(m\|sh\)
うまくいくようです。正規表現の特殊文字をエスケープする必要があるのか、他のツール間でエスケープする必要があるのかについての合意はあまりないと思います。