URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 6116
[ Назад ]

Исходное сообщение
"find regex"

Отправлено klame2 , 23-Янв-07 10:16 
У команды find есть аргумнт -regex, где можно указать регулярное выражение для поиска, а как использовать -regex для поиска не соответствующих регулярному выражению файлов?
Пример: найти все соостветствия - find -regex .*test[\\.], а мне надо найти все кроме этих файлов, указание "!" перед выражением не проходит - find -regex !.*test[\\.] - bash: !.*test[\\.]: event not found, различные экранирования тоже не помагают.

Содержание

Сообщения в этом обсуждении
"find regex"
Отправлено phpcoder , 23-Янв-07 11:33 
>У команды find есть аргумнт -regex, где можно указать регулярное выражение для
>поиска, а как использовать -regex для поиска не соответствующих регулярному выражению
>файлов?
>Пример: найти все соостветствия - find -regex .*test[\\.], а мне надо найти
>все кроме этих файлов, указание "!" перед выражением не проходит -
>find -regex !.*test[\\.] - bash: !.*test[\\.]: event not found, различные экранирования
>тоже не помагают.

Не уверен, что поможет, но попробуйте добавить отрицание перед -regex:

find ! -regex .*test[\\.]

Возможно также, что само регулярное выражение нужно заключить в одинарные кавычки, чтобы шелл не шалил.


"find regex"
Отправлено newser , 23-Янв-07 11:53 
>У команды find есть аргумнт -regex, где можно указать регулярное выражение для
>поиска, а как использовать -regex для поиска не соответствующих регулярному выражению
>файлов?
>Пример: найти все соостветствия - find -regex .*test[\\.], а мне надо найти
>все кроме этих файлов, указание "!" перед выражением не проходит -
>find -regex !.*test[\\.] - bash: !.*test[\\.]: event not found, различные экранирования
>тоже не помагают.

find /path ! -regex '.*test[\\.]'

Так получается?


"find regex"
Отправлено klame2 , 23-Янв-07 13:19 
>
>find /path ! -regex '.*test[\\.]'
>
>Так получается?

Да, спасибо!