#!/bin/sh
pvs -o pv_name,pv_size,pv_free,pv_tags --units m ${1+"$@"} |
perl -e '
	$^W=1;
	use strict;

	my $header;
	my @lines=();

	while (<>) {
		s/^  //;
		if($. == 1){
			s/ PSize / MiB:PSize /;
			s/    MiB:PSize/ MiB:PSize /;
			s/      PFree / PFree /;
			s/     PV Tags *$/PV Tags/;
			#s/ PSize     / PSize /;
			#s/     PSize / MiB:PSize /;
			#s/ PFree     / PFree /;
			s/ +$//;
			$header=$_;
		}else{
			#s/\.00m(?= \/|$)//;
			s/\.00m(?= |$)//g;
			s/    0m(?= |$)/ 0/g;
			s/ +$//;
			push(@lines,$_);
		};
	};

	print (
		$header,
		sort{
			my ($A,$B)=($a,$b);
			$A=~s/\A\D*(\d+)\D.*\z/$1/s;
			$A+=0;
			$B=~s/\A\D*(\d+)\D.*\z/$1/s;
			$B+=0;
			$A <=> $B
		}(@lines),
	) or die "-p destination: $!\n";
'
