graphical representation of `du`

Chris Rees utisoft at gmail.com
Sat Apr 2 17:22:43 UTC 2011


On 2 April 2011 18:07, Mike Jeays <mike.jeays at rogers.com> wrote:
> On Sat, 2 Apr 2011 17:15:04 +0100
> Chris Rees <utisoft at gmail.com> wrote:
>
>> du -h . | awk '{a[i++]=$0} END {for (j=i-1; j>=0;) print a[j--] }' |
>> awk '{print($2" ["$1"]");}' | sed -e 's,[^-][^/]*/,--,g' -e 's,^,|,'
>
>
> I confess to being impressed...
>

Yeah, but perhaps I should have used sed instead of the second awk;
fewer processes:

du -h | awk '{a[i++]=$0} END {for (j=i-1; j>=0;) print a[j--] }' | sed
-e 's,^[^1-9]*\([^___CTRL-V+TAB______]*\)____CTRL-V+TAB_____*\(.*\)$,\2
\[\1\],;s,[^-][^/]*/,--,g;s,^,|,'

That does exactly the same --  where I've put ____CTRL-V+TAB______ you
have to type Ctrl-V, then a literal [::tab::] key; BSD sed doesn't do
\t.

Chris


More information about the freebsd-questions mailing list