tsvkit.org
TSV Toolkit
Sample data Say hi →

TSV to Text Columns

space-padded columns · monospace alignment · configurable gap

Replace the tabs with padding so the columns line up visually. A tab-separated file looks ragged in a terminal because tab stops fall wherever they fall; padding each cell to its column's widest value makes the table readable in any monospace context — a log, a code comment, an email, a commit message. For a bordered version, TSV → ASCII table.

tsv → text columns
Drop a .tsv file here, or
ready

How to use

  1. Paste or drop the TSV.
  2. Set the gap between columns — two spaces is the readable default, one is tighter.
  3. Copy into a monospace context. In a proportional font the alignment collapses, so wrap it in a code block if the destination supports one.

This is a one-way conversion

Once the tabs are replaced with spaces, the column boundaries are only visual — a value containing spaces is indistinguishable from the padding between columns, so the result cannot be reliably parsed back. Keep the TSV as your source and regenerate the aligned version when you need it.

That's also why this output isn't a good file format to hand to a program. It's for reading. If a consumer needs fixed-width columns as a real format, it will have a specification with byte offsets per field, which this doesn't attempt to match.

Alignment and non-Latin text

Widths are computed by counting characters. That's exact for Latin text and digits, but CJK characters occupy two terminal cells while counting as one character, and emoji and combining accents behave similarly — so those columns will look slightly narrow. Every tool that aligns text in a terminal has this limitation; fixing it requires knowing the rendering font.

FAQ

What's the shell equivalent?

column -t -s $'\t' f.tsv, which does the same job. This page is handy when you're already in the browser, and it lets you see the result before committing to it.

Can I right-align the numbers?

Not on this page — everything is left-aligned. TSV → ASCII table right-aligns numeric columns automatically and adds borders.

Do long values break the layout?

One very long cell widens its whole column. Cap it first with truncate cells to keep the table narrow.

Can I convert the aligned text back to TSV?

Not reliably, for the reason above. If you must, and no value contains multiple consecutive spaces, splitting on runs of two or more spaces works — split a column in regex mode with \s{2,}.

Privacy

100% client-side. No upload. See the privacy policy.