#!/usr/bin/nawk -f # # mls - GNU ls(1) "-h" option implementation for POSIX ls(1), just better # 17 Sep 2001, Antoni Sawicki # BEGIN { LSCMD="/usr/bin/ls -l" while(LSCMD|getline) if ($1 !~ /^total/) { if($5 >= 1024 && $5 < 1024^2 ) { size = $5/1024; unit = "kb" } else if($5 >= 1024^2 && $5 < 1024^3 ) { size = $5/1024^2; unit = "Mb" } else if($5 >= 1024^3 && $5 < 1024^4 ) { size = $5/1024^3; unit = "Gb" } else if($5 >= 1024^4 && $5 < 1024^5 ) { size = $5/1024^4; unit = "Tb" } else { size = $5; unit = " b" } printf("%s%4d %s\t%s\t%6.1f %2s %s/%.2d %5s %s\n", $1, $2, $3, $4,\ size, unit, $6, $7, $8, $9) } close(PSCMD) }