#!/usr/bin/env perl
use strict;
use warnings;
local $/ = '--- Physical volume ---';
while (my $chunk = <DATA>) {
chomp $chunk;
$chunk =~ s/\A \s+ //x;
$chunk =~ s/\s+ \z //x;
next unless $chunk =~ /\S/;
my %obs = ($chunk =~ /^ (.+?[eED]) \s{2,} (\S .+) $/gxm);
use YAML;
print Dump \%obs;
}
__DATA__
--- Physical volume ---
PV Name /dev/sdb
VG Name vg_virtual_01
PV Size 16.37 TiB / not usable 2.25 MiB
Allocatable yes
PE Size 4.00 MiB
Total PE 4291533
Free PE 3830989
Allocated PE 460544
PV UUID zqi1Q6-tIag-ghQy-MmdJ-kyOS-XkmY-HpyQ51
--- Physical volume ---
PV Name /dev/sda
VG Name vg_virtual_02
PV Size 16.37 TiB / not usable 2.25 MiB
Allocatable yes
PE Size 4.00 MiB
Total PE 4291533
Free PE 1525709
Allocated PE 2765824
PV UUID BlYvJW-ieVx-AjRg-p3r6-e4oC-TkPc-u2lf7x
Output:
$ ./gg.pl
---
Allocatable: yes
Allocated PE: 460544
Free PE: 3830989
PE Size: 4.00 MiB
PV Name: /dev/sdb
PV Size: 16.37 TiB / not usable 2.25 MiB
PV UUID: zqi1Q6-tIag-ghQy-MmdJ-kyOS-XkmY-HpyQ51
Total PE: 4291533
VG Name: vg_virtual_01
---
Allocatable: yes
Allocated PE: 2765824
Free PE: 1525709
PE Size: 4.00 MiB
PV Name: /dev/sda
PV Size: 16.37 TiB / not usable 2.25 MiB
PV UUID: BlYvJW-ieVx-AjRg-p3r6-e4oC-TkPc-u2lf7x
Total PE: 4291533
VG Name: vg_virtual_02