Ever needed to convert lots of lines with 1M or 1G to their raw number representation?
Here is a sample:
$ cat sample 26140 132K 1.9G 1.5G ?K 0K 8K 0K 5% mysqld 26140 132K 1.9G 1.5G ?K 4K 8K 0K 5% mysqld 26140 132K 1.9G 1.5G ?K 0K 0K 0K 5% mysqld 26140 132K 1.9G 1.5G ?K -8K 0K 0K 5% mysqld 26140 132K 1.9G 1.6G ?K 0K 20K 0K 5% mysqld 26140 132K 1.9G 1.6G ?K 0K 56K 0K 5% mysqld 26140 132K 1.9G 1.7G ?K -4K 4K 0K 5% mysqld 26140 132K 1.9G 1.7G ?K 0K 16K 0K 5% mysqld 26140 132K 1.9G 1.8G ?K 0K 0K 0K 5% mysqld
The following Perl one-liner comes to the rescue:
perl -Mstrict -Mwarnings -n -e 'my %p=( K=>3, M=>6, G=>9, T=>12); s/(\d+(?:\.\d+)?)([KMGT])/$1*10**$p{$2}/ge; print'
In the end you get:
$ cat sample | perl -Mstrict -Mwarnings -n -e 'my %p=( K=>3, M=>6, G=>9, T=>12); s/(\d+(?:\.\d+)?)([KMGT])/$1*10**$p{$2}/ge; print' 26140 132000 1900000000 1500000000 ?K 0 8000 0 5% mysqld 26140 132000 1900000000 1500000000 ?K 4000 8000 0 5% mysqld 26140 132000 1900000000 1500000000 ?K 0 0 0 5% mysqld 26140 132000 1900000000 1500000000 ?K -8000 0 0 5% mysqld 26140 132000 1900000000 1600000000 ?K 0 20000 0 5% mysqld 26140 132000 1900000000 1600000000 ?K 0 56000 0 5% mysqld 26140 132000 1900000000 1700000000 ?K -4000 4000 0 5% mysqld 26140 132000 1900000000 1700000000 ?K 0 16000 0 5% mysqld 26140 132000 1900000000 1800000000 ?K 0 0 0 5% mysqld
You can now paste this output to Excel, for example, in order to create a nice chart of it.