Регекст начинается с 3 последовательных заглавных букв - PullRequest
0 голосов
/ 28 мая 2020

Имейте следующее регулярное выражение для определения начала файла с 3 последовательных заглавных букв:

(?=(.*[A-Z]){3})(?=(.*[a-z]){3})(?=.*(_|[^\w]))

Когда я ищу файл, я нашел его:

root@node01:~# find . -type f -name DASD-680.mp4.part
./DASD-680.mp4.part

Но когда я искал, не 'не нашел никаких результатов:

root@RPI01:~# find . -type f -regextype egrep -regex "(?=(.*[A-Z]){3})(?=(.*[a-z]){3})(?=.*(_|[^\w]))"

В чем именно проблема ???

Обновление:

файл существует:

TAD-007.mp4

но нет результат с таким:

/usr/bin/find . -type f -regextype posix-extended -regex "[A-Z]{3}.*"

спасибо!

1 Ответ

1 голос
/ 04 июня 2020
  • find дает список файлов с префиксом ./ например, ./DASD-680.mp4.part
  • мотив регулярного выражения должен соответствовать всему имени файла, включая ./
  • аромат регулярного выражения не поддерживает кванторы

Вот способ сделать то, что вы хотите:

find . -type f -regex '..[A-Z][A-Z][A-Z].*'

где первые 2 точки совпадают ./

Вы звоните также используйте:

find . -type f -regex '\./[A-Z][A-Z][A-Z].*'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...