find . -regextype sed -regex ".*/[a-f0-9\-]\{36\}\.jpg"
.*/
を指定する必要があることに注意してください 最初は find
なので パス全体に一致します。
例:
[email protected]:~/so$ find . -name "*.jpg"
./foo-111.jpg
./test/81397018-b84a-11e0-9d2a-001b77dc0bed.jpg
./81397018-b84a-11e0-9d2a-001b77dc0bed.jpg
[email protected]:~/so$
[email protected]:~/so$ find . -regextype sed -regex ".*/[a-f0-9\-]\{36\}\.jpg"
./test/81397018-b84a-11e0-9d2a-001b77dc0bed.jpg
./81397018-b84a-11e0-9d2a-001b77dc0bed.jpg
私のバージョンの検索:
$ find --version
find (GNU findutils) 4.4.2
Copyright (C) 2007 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Written by Eric B. Decker, James Youngman, and Kevin Dalley.
Built using GNU gnulib version e5573b1bad88bfabcda181b9e0125fb0c52b7d3b
Features enabled: D_TYPE O_NOFOLLOW(enabled) LEAF_OPTIMISATION FTS() CBO(level=0)
[email protected]:~/so$
[email protected]:~/so$ find . -regextype foo -regex ".*/[a-f0-9\-]\{36\}\.jpg"
find: Unknown regular expression type `foo'; valid types are `findutils-default', `awk', `egrep', `ed', `emacs', `gnu-awk', `grep', `posix-awk', `posix-basic', `posix-egrep', `posix-extended', `posix-minimal-basic', `sed'.
-regex
検索式は名前全体に一致します 、現在のディレクトリからの相対パスを含みます。 find .
の場合 これは常に ./
で始まります 、次に任意のディレクトリ。
また、これらは emacs
です 通常の egrep 正規表現以外のエスケープ規則を持つ正規表現。
これらがすべて現在のディレクトリにある場合、
find . -regex '\./[a-f0-9\-]\{36\}\.jpg'
動作するはずです。 (よくわかりません-ここでカウントされた繰り返しを機能させることができません。) -regextype posix-egrep
で egrep 式に切り替えることができます :
find . -regextype posix-egrep -regex '\./[a-f0-9\-]{36}\.jpg'
(ここで述べていることはすべて GNU find に関するものであることに注意してください。Mac のデフォルトでもある BSD については何も知りません。)
他の回答から判断すると、これは find のせいかもしれません。
ただし、代わりに次の方法で行うこともできます:
find . * | grep -P "[a-f0-9\-]{36}\.jpg"
grep を少し調整し、必要に応じて異なるオプションを使用する必要があるかもしれませんが、うまくいきます。