serii81
@serii81
Я люблю phр...

Почему не работает find?

Есть несколько файлов
1.txt 3.txt 10.txt 14.txt 20.txt
если найти все, то работает.
find -regex '.*'
.
./3.txt
./14.txt
./1.txt
./20.txt
./10.txt


А так нет

find -regex '.*[\d]+\.\w+.*'

В чем тут подвох
  • Вопрос задан
  • 301 просмотр
Решения вопроса 2
serii81
@serii81 Автор вопроса
Я люблю phр...
Решил так
find -name "[0-9][0-9].txt"
Ответ написан
saboteur_kiev
@saboteur_kiev Куратор тега bash
software engineer
Потому что \d это мета символ, а вы пытаетесь его внутри character classes [] искать.
Есть несколько стандартов регулярок, и find не умеет PCRE стандарт. По умолчанию у него emacs стандарт. Поэтому ваша регулярка это:

find -regex ".*[0-9]+\.\w+"
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы