なんかあるやろと思ったら macOS にも標準で入っている column コマンドで十分だった。 miller とかを眺めていたが高機能すぎて持て余したのでこれで良かった。
これが、
$ cat service.tsv Twitter X G Suite Google Workspace Office 365 Microsoft 365 HipChat Stride
こうなる。
$ cat service.tsv | column -t -s $'\t' Twitter X G Suite Google Workspace Office 365 Microsoft 365 HipChat Stride
ポイントは $'\t
でまったく知らなかったのだけれど対応しているシェルだと $'<エスケープシーケンス>'
と書くとエスケープシーケンスを解釈した結果に置き換えてくれるらしい。(see also)
最終的にやりたかったのは gh の結果をシュッとテーブル形式で表示するので以下のような感じで扱えて見栄えがよくなった。(スクショ参照)
$ gh pr list --json 'number,author,title,headRefName' -q '.[] | [ "#" + (.number | tostring), "@" + .author.login, .title, .headRefName] | @tsv' | column -t -s $'\t'
ちなみにこれだとデフォルトの表示の方が綺麗なのであくまでサンプルです。