Безопасно найти файлы, соответствующие шаблону и литералам - PullRequest
0 голосов
/ 22 ноября 2010

Учитывая имя файла вроде 'prefix.extension', я бы хотел найти все файлы шаблона prefix\.\d\d\.extension. Учитывая, что префикс или расширение может содержать буквенные строки, такие как .*, \n и т. П., Единственный способ найти правильный способ - это экранировать все символы в префиксе и расширении, помещая их до и после \.\d\d\., и egrep -ing это. Есть ли более элегантный способ сделать это и / или какой-нибудь простой способ экранировать все специальные символы для egrep в скрипте Bash?

Обратите внимание, что добавление обратной косой черты перед каждым символом изменит семантику некоторых, например \w.

1 Ответ

0 голосов
/ 22 ноября 2010

Получается grep --perl-regexp с \Q и \E делает то, что мне нужно:

ls -1N -- "${source_dir}" | grep -P "^\Q${source_base}.\E\d\{${fragment_digits}\}\Q.${source_extensions}\E\$"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...