文字列の長さ順にソートすると美しい。
なんでなんだろうね。アルファベット順よりも文字列長さ順でソートすると、出力がきれいに見えるんだよね。
awk/sort で文字列の長さ順にソートする。
command | awk '{print length() ,$0}' | sort -nr
例えばPATHをソートしてみる
takuya@~$ echo -e ${PATH//:/'\n'} | awk '{print length() ,$0}' | sort -nr
26 /Users/takuya/.rbenv/shims
26 /Users/takuya/.pyenv/shims
24 /usr/local/share/npm/bin
24 /Users/takuya/.pyenv/bin
18 /Users/takuya/.bin
15 /usr/local/sbin
14 /usr/local/bin
12 /opt/X11/bin
9 /usr/sbin
8 /usr/bin
5 /sbin
4 /bin
ああ、美しい。
ソートした結果が欲しい時
takuya@~$ echo -e ${PATH//:/'\n'} | awk '{print length() ,$0}' | sort -nr | awk '{ print $2 }'
/Users/takuya/.rbenv/shims
/Users/takuya/.pyenv/shims
/usr/local/share/npm/bin
/Users/takuya/.pyenv/bin
/Users/takuya/.bin
/usr/local/sbin
/usr/local/bin
/opt/X11/bin
/usr/sbin
/usr/bin
/sbin
/bin
うん、美しい。
とくにPATHは文字列が長いほど、優先度が高く、/binなどの共有コマンドを上書きする側になるので、コレが便利。