Соответствие расширенным регулярным выражениям в POSIX Shell - PullRequest
0 голосов
/ 22 марта 2020

Мне кажется, у меня очень простой вопрос, но я не могу найти ответ. У меня есть этот код [[ "${file_name}" = ${regex} ]] && continue Версия POSIX не поддерживает этот шаблон [[]] ... По сути, это строка. Если имя файла соответствует расширенному регулярному выражению, оно пропускает мой l oop. Есть ли способ в норме POSIX сделать то же самое в одной строке? или есть какой-то другой способ иметь слово и сравнивать его с регулярным выражением E? Спасибо за ваши ответы.

1 Ответ

1 голос
/ 22 марта 2020

Используйте grep -E:

if grep -qE "$regex" "$file_name"; then

Если вы хотите сопоставить содержимое переменной file_name, направьте ее по адресу grep:

if printf "%s\n" "$file_name" | grep -qE "$regex"; then
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...