X-Git-Url: http://git.shiar.net/barcat.git/blobdiff_plain/bdd1d9ee2ace72d65caa8305d24ce341b77bf573..9311bd5ea1a9b062c2a1f88fe768829ffc3c004b:/barcat diff --git a/barcat b/barcat index e6b22b6..6d56109 100755 --- a/barcat +++ b/barcat @@ -18,7 +18,10 @@ GetOptions(\%opt, 'color|c!', 'C' => sub { $opt{color} = 0 }, 'field|f=s' => sub { - $opt{anchor} = /^[0-9]+$/ ? qr/(?:\S*\h+){$_}\K/ : $_ for $_[1]; + eval { + local $_ = $_[1]; + $opt{anchor} = /^[0-9]+$/ ? qr/(?:\S*\h+){$_}\K/ : qr/$_/; + } or die "$@ for option $_[0]\n"; }, 'human-readable|H!', 'interval|t:i', @@ -68,7 +71,7 @@ if (defined $opt{interval}) { $SIG{INT} = 'IGNORE'; # continue after assumed eof my (@lines, @values); -my $valmatch = qr/$opt{anchor} ( \h* -? [0-9]* \.? [0-9]+ |)/x; +my $valmatch = qr/$opt{anchor} ( \h* -? [0-9]* \.? [0-9]+ (?: e[+-]?[0-9]+ )? |)/x; while (readline) { s/\r?\n\z//; s/^\h*// unless $opt{unmodified}; @@ -196,6 +199,7 @@ for example I<-f'(\d+)'> for the first digits anywhere. Format values using SI unit prefixes, turning long numbers like I<12356789> into I<12.4M>. +Also changes an exponent I<1.602176634e-19> to I<160.2z>. =item -t, --interval[=]