find и регулярные выражения в именах

На самом деле это единственный раздел про unix на этом форуме

Модераторы: /dev/random, Модераторы разделов

sedikpoll
Сообщения: 100

find и регулярные выражения в именах

Сообщение sedikpoll »

Мне необходимо иcключать из поиска файлы с определнным расширением. Но увы, у меня это не получается, find не понимаем мою логику.
Думал что он меня поймет так:

Код: Выделить всё

find ./ -type f ! -name "*.(abc*|txt|i?x?mp)"

Не хочет. Перепробывал различные варианты, но не смог добиться результата.
Есть ли выход?
Спасибо сказали:
Аватара пользователя
/dev/random
Администратор
Сообщения: 5405
ОС: Gentoo

Re: find и регулярные выражения в именах

Сообщение /dev/random »

man find, опция -regex
Спасибо сказали:
Аватара пользователя
drBatty
Сообщения: 8735
Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
ОС: Slackware-current

Re: find и регулярные выражения в именах

Сообщение drBatty »

sedikpoll писал(а):
15.11.2010 01:08
find ./ -type f ! -name "*.(abc*|txt|i?x?mp)"

Код: Выделить всё

-regex ".*\.\(abc.*\|txt\|i.x.mp\)"

как-то так.
http://emulek.blogspot.ru/ Windows Must Die
Учебник по sed зеркало в github

Скоро придёт
Осень
Спасибо сказали:
LittleJohn
Сообщения: 5

Re: find и регулярные выражения в именах

Сообщение LittleJohn »

find . \! \( -name "*.abc*" -o -name "*txt" -o -name "*mp" \) -type f

С find лучше не использовать регекспы, получается в разы медленее
Спасибо сказали: