найти регулярное выражение команды с необязательным подвыражением

#linux #shell #find

#linux #оболочка #Найти

Вопрос:

У меня есть следующий список файлов

 file                        <-
file.2019041543764832       <-
file.2019041643764832       <-
file.2019041243764832
file.2019041143764832
 

Я хочу найти все помеченные файлы, которые имеют префикс file и, возможно, суффикс по датам 20190415xxxxx или 20190416xxxxx

Я пробовал следующее, но оно не дает никаких результатов.

find . -regex 'file(.2019041(5|6)[0-9].*)?' -regextype egrep

Мне нужна помощь с правильным типом регулярного выражения и правильным синтаксисом для достижения этой цели.

Ответ №1:

 find . -regex './file(.2019041(5|6)[0-9]*)?' -regextype egrep
 

или просто

 find . -regex './file(.2019041[56][0-9]*)?'
 

(При использовании find . моя версия find префиксов совпадает с ./ , поэтому я добавил это в регулярное выражение.)

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

1. Наверное, мне не хватало слова `сбежать от персонажей». Спасибо! есть ли какой-нибудь способ сделать это без того, чтобы все это сбежало?