Embora você não deva analisar XML com regexes , isso funciona com sua entrada de exemplo:
perl -ple '
($enabled) = /(?<=enabled=").*?(?=")/g;
($group) = /(?<=group=").*?(?=")/g;
($name) = /(?<=<name>).*?(?=<\/name>)/g;
($text) = /(?<=<text>).*?(?=<\/text>)/g;
$_= "$enabled;$group;$name;$text";
s/<.*?>//g;
' Rules.csv
true;Functions;Recon: Remote Windows Server Scanner;when any of these BB:CategoryDefinition: Recon Events, BB:CategoryDefinition: Suspicious Events with the same source IP more than 5 times, across more than 59 destination IP within 10 minutes
Notas:
- suas restrições "ativadas" e "de grupo" foram quebradas
- se você está trabalhando em perl, você não precisa canalizar para sed
-
a razãos/<*>//g
apaga toda a saída é que você está combinando zero ou mais colchetes abertos até o último colchete de fechamento - isso corresponde à sua cadeia inteira.- você provavelmente pretendeu
s/<[^>]*>//g
- você provavelmente pretendeu