У меня есть код ниже, где я пытаюсь grep для шаблона в переменной. Переменная имеет в ней многострочный текст.Perl grep многострочный вывод для шаблона
Многострочный текст в $output
выглядит следующим образом
_skv_version=1
COMPONENTSEQUENCE=C1-
BEGIN_C1
COMPONENT=SecurityJNI
TOOLSEQUENCE=T1-
END_C1
CMD_ID=null
CMD_USES_ASSET_ENV=null_jdk1.7.0_80
CMD_USES_ASSET_ENV=null_ivy,null_jdk1.7.3_80
BEGIN_C1_T1
CMD_ID=msdotnet_VS2013_x64
CMD_ID=ant_1.7.1
CMD_FILE=path/to/abcI.vc12.sln
BEGIN_CMD_OPTIONS_RELEASE
-useideenv
код, я использую для Grep для шаблона
use strict;
use warnings;
my $cmd_pattern = "CMD_ID=|CMD_USES_ASSET_ENV=";
my @matching_lines;
my $output = `cmd to get output` ;
print "output is : $output\n";
if ($output =~ /^$cmd_pattern(?:null_)?(\w+([\.]?\w+)*)/s) {
print "1 is : $1\n";
push (@matching_lines, $1);
}
Я получаю выход многострочный, как ожидалось от $output
, но в матче регулярного выражения шаблона который я использую на $output
, не дает мне никаких результатов.
Желаемая выход
jdk1.7.0_80
ivy
jdk1.7.3_80
msdotnet_VS2013_x64
ant_1.7.1