Output :use strict; use warnings; local $/="\narray "; while (<DATA>){ s/\n(?!unassigned)(:?array)?/ /g; print my $row=(m/^array/?"":"array "). "$_\n"; } __DATA__ array A physicaldrive 2C:1:1 port 2C:box 1:bay 1 SAS 1 TB OK physicaldrive 2C:1:2 port 2C:box 1:bay 2 SAS 1 TB OK array B ... etc ... unassigned physicaldrive 7C:3:7 port 7C:box 3:bay 7 SAS 1 TB OK ...
Separating the "unassigned" in $row is left as an exercise.array A physicaldrive 2C:1:1 port 2C:box 1:bay 1 SAS 1 TB OK physicald +rive 2C:1:2 port 2C:box 1:bay 2 SAS 1 TB OK array B physicaldrive 2C:1:3 port 2C:box 1:bay 3 SAS 1 TB OK physicald +rive 2C:1:4 port 2C:box 1:bay 4 SAS 1 TB OK ... array J physicaldrive 6C:3:3 port 6C:box 3:bay 3 SAS 1 TB OK physicald +rive 6C:3:4 port 6C:box 3:bay 4 SAS 1 TB OK array K physicaldrive 7C:3:5 port 7C:box 3:bay 5 SAS 1 TB OK physicald +rive 7C:3:6 port 7C:box 3:bay 6 SAS 1 TB OK unassigned physicaldrive 7C:3:7 port 7C:box 3:bay 7 SAS 1 TB OK physic +aldrive 7C:3:8 port 7C:box 3:bay 8 SAS 1 TB OK
"You're only given one little spark of madness. You mustn't lose it." - Robin Williams
In reply to Re: Join multiple lines in a string based on regex.
by NetWallah
in thread Join multiple lines in a string based on regex.
by pr33
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |