文字列の長さ順にソートすると美しい。
なんでなんだろうね。アルファベット順よりも文字列長さ順でソートすると、出力がきれいに見えるんだよね。
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
などの共有コマンドを上書きする側になるので、コレが便利。