Почему у "find" на OSX возникают проблемы с регулярным выражением? - PullRequest
0 голосов
/ 15 ноября 2018

найди -Е.-type f -iregex ". Diss. .tex" -exec basename {} +

или

find -E.-type f -iregex "(. * /). Diss. .tex" -exec basename {} +

Находит ВСЕ файлы с расширением .tex, но не ограничивает их именаDiss * .tex

Не работает ли OSX, или регулярное выражение неверно?

1 Ответ

0 голосов
/ 15 ноября 2018

Шаблон .* соответствует любым 0 или более символам, поэтому Myfile может появляться в любой части пути.См. Демонстрационную версию вашего регулярного выражения:

enter image description here

Вы можете ограничить Myfile, чтобы отображаться только после последнего /, если вы замените эти .* вконец с [^/]* соответствием любым 0+ символам, кроме /.

Шаблон будет выглядеть как

.*/[^/]*Myfile[^/]*\.tex

Вот демоверсия того, что он будет соответствовать .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...