X-Git-Url: http://git.shiar.nl/barcat.git/blobdiff_plain/45f511dfa9c64725f7113a2a57a98435c3c1b09a..refs/tags/v1.09:/barcat diff --git a/barcat b/barcat index 2a931c6..d93f251 100755 --- a/barcat +++ b/barcat @@ -6,7 +6,7 @@ use List::Util qw( min max sum ); use open qw( :std :utf8 ); use re '/msx'; -our $VERSION = '1.08'; +our $VERSION = '1.09'; my %opt; if (@ARGV) { @@ -246,7 +246,9 @@ if ($opt{markers} and $size > 0) { return sum(@order) / @order; } elsif ($func =~ /\A([0-9.]+)v\z/) { - die "Invalid marker $char: percentile $1 out of bounds\n" if $1 > 100; + $1 <= 100 or die( + "Invalid marker $char: percentile $1 out of bounds\n" + ); my $index = $#order * $1 / 100; return ($order[$index] + $order[$index + .5]) / 2; } @@ -650,14 +652,21 @@ Number of HTTP requests per day: cat httpd/access.log | cut -d\ -f4 | cut -d: -f1 | uniq -c | barcat -Any kind of database query with counts, preserving returned alignment: +Any kind of database query results, preserving returned alignment: - echo 'SELECT count(*),schemaname FROM pg_tables GROUP BY 2' | + echo 'SELECT sin(value * .1) FROM generate_series(0, 30) value' | psql -t | barcat -u -In PostgreSQL from within the client: +In PostgreSQL from within the client; a fancy C<\dt+> perhaps: - > SELECT sin(generate_series(0, 3, .1)) \g |barcat + > SELECT schemaname, relname, pg_total_relation_size(relid) + FROM pg_statio_user_tables ORDER BY idx_blks_hit + \g |barcat -uHf+ + +Same thing in SQLite (requires the sqlite3 client): + + > .once |barcat -Hf+ + > SELECT name, sum(pgsize) FROM dbstat GROUP BY 1; Earthquakes worldwide magnitude 1+ in the last 24 hours: