in reply to Multiple Line Regex Not Working
G'day ImJustAFriend,
Instead of reading one line at a time, you could read one chunk at a time by setting $/ (see perlvar: $/).
Here's a quick-and-dirty example script to demonstrate the technique. I pared down your posted data substantially; duplicated it; then labelled with "CHUNK 1" and "CHUNK 2".
#!/usr/bin/env perl use strict; use warnings; { local $/ = "\nMessage Id"; while (<DATA>) { chomp; /^message=(.*)\z/ms && print "$1\n"; } } __DATA__ <13>Nov 15 21:26:00 OamCOMM[365626]: TIMESTAMP=Thu Nov 15 21:26:00 2018 ... Severity=Inform message={username:xxxxxxx... causeDISTINGUISH_NAME=... ... CHUNK 1 ... label=x } Message Id=xxxxxxxx <13>Nov 15 21:26:00 OamCOMM[365626]: TIMESTAMP=Thu Nov 15 21:26:00 2018 ... Severity=Inform message={username:xxxxxxx... causeDISTINGUISH_NAME=... ... CHUNK 2 ... label=x } Message Id=xxxxxxxx
Output:
{username:xxxxxxx... causeDISTINGUISH_NAME=... ... CHUNK 1 ... label=x } {username:xxxxxxx... causeDISTINGUISH_NAME=... ... CHUNK 2 ... label=x }
— Ken
|
|---|