上記と同じ問題を再回答。
#!/usr/bin/perl my %hash = ( 'B' => 1, 'K' => 2**10, 'M' => 2**20, 'G' => 2**30, 'T' => 2**40 ); while(<STDIN>) { /^\s*([0-9\.]*)([KMGTB])/; $sz = $1 * $hash{$2}; eval("s/^\\s*[0-9\.]*[KMGTB]/".$sz."/"); print $_; } 1;
上記が filter.pl ならば、
$ du -h * | ./filter.pl | sort -n -k 1,1
でいけるはず。