Можно ли вызвать такую программу, как Perl, из скрипта Bash, чтобы выполнить регулярное выражение с именованными группами захвата и экспортировать результаты в виде переменных обратно в родительскую оболочку?
Например:
#!/bin/bash
input="a small box"
regex="a (?P<size>\w+) box"
perl -e "
my \$str = \"$input\";
if ( \$str =~ /$regex/ ) {
# Do a thing...
}
"
# Illustrative purposes only
echo $size
Ожидаемый результат будет small
.
Это не нужно делать специально с Perl.Я просто хочу знать, можно ли это сделать и продемонстрировать.
У меня есть несколько тысяч файлов для анализа, и мне нужно создать очень большое и сложное регулярное выражение для обработки их содержимого.Хотя это можно сделать с помощью других инструментов, таких как pcregrep
или =~
с пронумерованными группами захвата, я бы предпочел использовать именованные группы захвата для ясности.
Не думаю, что мне нужно что-то использоватькроме Bash, за исключением тяжелого подъема этого сложного регулярного выражения.Есть ли способ легко перейти на другой язык, чтобы воспользоваться именованными группами захвата и экспортировать результат обратно в родительскую среду?