Go
golang

Golangで表をタブ区切りで表示する

More than 1 year has passed since last update.

CLIツールで表を出力するとき、下記のパッケージを使うとかっこ良く表示できる。

出力例(olekukonko/tablewriterから引用):

+------+-----------------------+--------+

| NAME | SIGN | RATING |
+------+-----------------------+--------+
| A | The Good | 500 |
| B | The Very very Bad Man | 288 |
| C | The Ugly | 120 |
| D | The Gopher | 800 |
+------+-----------------------+--------+

これはこれで綺麗だが、出力された表を流用・加工する場合はスペースだったりタブのみで区切られていた方が使い勝手が良かったりする。

単純なタブ区切りなら、text/tabwriterパッケージで出力可能。

https://golang.org/pkg/text/tabwriter/

package main

import (
"fmt"
"os"
"text/tabwriter"
)

func main() {
w := new(tabwriter.Writer)

w.Init(os.Stdout, 0, 8, 0, '\t', 0)
fmt.Fprintln(w, "a\tb\tc\td\t.")
fmt.Fprintln(w, "123\t12345\t1234567\t123456789\t.")
fmt.Fprintln(w)
w.Flush()
}

https://play.golang.org/p/ywxPNdcBu0