How to Convert CSV to TSV
Change a comma-separated file to tab-separated values without corrupting quoted cells, why find-and-replace fails, and when TSV beats CSV.
Quick Answer
To convert CSV to tab-separated values, paste the comma-separated text into the input
pane. The converter parses the CSV first, then rewrites it with tabs between fields, so
a quoted cell like "Smith, Jane" stays one column instead of splitting on
its comma. This delimiter conversion updates as you type, the output is ready to paste
into a spreadsheet as columns, and nothing leaves your browser.
What Is TSV?
TSV stands for tab-separated values. It stores the same table as CSV, but the fields on
each line are separated by a tab character instead of a comma. Because tabs almost never
appear inside real data, TSV sidesteps most of the quoting rules that CSV needs. That is
why command-line tools like cut and awk, database bulk loaders,
and clipboard pastes into Excel or Google Sheets all favour it. When you copy a range
from a spreadsheet, what lands on your clipboard is already TSV.
When is TSV better than CSV? Use it whenever the target expects tab-delimited input or when quoting rules keep tripping you up. A tab-delimited converter earns its keep with fields that contain commas, currency values, or free text, because those force constant quoting in CSV but stay clean in a csv tsv conversion. Stay with CSV when the receiving system names CSV explicitly, since it remains the wider default for data exchange.
How It Works
The input is parsed as real CSV first, following RFC 4180 quoting, so quoted fields, embedded commas, escaped quotes, and multi-line cells are understood as data rather than structure. The parser turns the text into a grid of rows and cells. Each row is then re-serialized with a tab between cells. Quoting is rebuilt for the new delimiter: a cell that was quoted only because it held a comma no longer needs quotes in TSV, so they are dropped. A cell that contains a tab, a quote character, or a line break stays quoted, with inner quotes doubled, exactly as the CSV convention prescribes.
Nothing inside a cell is altered. Leading zeros, number formatting, and blank lines survive unchanged, because only the delimiter and the quoting around cells are rewritten. A summary line reports the row and column count so you can confirm the shape matches the source.
Parsing Conversion vs Find-and-Replace
The tempting shortcut is to open the file and replace every comma with a tab. It works
until the first quoted field. Replacing commas with tabs corrupts quoted cells: a value
like "Paris, France" becomes two columns, every following field shifts, and
the row no longer lines up with its header. A parsing conversion reads the quotes and
knows which commas are delimiters and which are data. That distinction is the whole point
of the tool, and it is why a genuine CSV to TSV converter is safer than a text editor's
replace command or a spreadsheet save-as.
Examples
Pasting into a spreadsheet as columns. For example, you have a CSV in a chat message and want it in Excel as proper columns. Convert it here, copy the tab separated values, and paste: Excel and Google Sheets both split the text into separate columns automatically, with no import dialog.
A name field with a comma. For example, the row
1,"Doe, John",NYC has a quoted comma. Input: three CSV columns. Output:
three tab-separated columns, writing Doe, John as a single cell. A
find-and-replace would wrongly make four.
Feeding a Unix pipeline. For example, a bulk loader or a
cut -f2 command expects tab-delimited input. Convert the export to TSV first
and the columns line up for field-based tools that do not parse CSV quoting.
Common Mistakes
Related Tools
You May Also Need
You may also need
- CSV CleanerClean the file before changing its delimiter
- CSV to JSON ConverterConvert the same data to JSON instead
Next steps
- CSV DiffVerify the converted data against the original export
- CSV CleanerNormalize whitespace and blank rows first
Alternatives
- CSV to JSON ConverterWhen the target tool wants structured JSON rather than another delimiter