четверг, 16 июля 2009 г.

Поиск файлов с использованием regexp

Так и не победил регекспы в самом find, пришлось задействовать grep.
find /net/anna/ad64/Int_Ed/Портал* -iname '*dbf'|egrep \/[0-9]+\.dbf|egrep -v '2007|2008'
UPD: Все очень просто:
find /net/anna/ad64/Int_Ed/Портал* -regex '.*\/[0-9]+\.dbf'
Надо было внимательнее читать man find, там сказано, что регексп применяется ко всей строке, таким образом получается:

.* - любое количество любых символов (путь к файлу)
\/ - экранированный слеш (начало названия файла)
[0-9]+ - одна или более цифра (имя искомых файлов состоит только из цифр и окончания ".dbf")
\. - экранированная точка
dbf$ - окончание названия файла (обязательное местоположение - конец строки).

Комментариев нет:

Отправить комментарий