Tab-separated values explained

Tab-separated values
Icon Size:128px
Noextcode:on
Extension:, [1]
Mime:text/tab-separated-values
Uniform Type:public.tab-separated-values-text
Conforms To:public.delimited-values-text
Owner:University of Minnesota Internet Gopher Team

Internet Assigned Numbers Authority
Type:Delimiter-separated values format
Genre:multiplatform, serial data streams
Container For:database information organized as field separated lists
Standard:IANA MIME type

Tab-separated values (TSV) is a simple, text-based file format for storing tabular data.[2] Records are separated by newlines, and values within a record are separated by tab characters. The TSV format is thus a delimiter-separated values format, similar to comma-separated values.

TSV is a simple file format that is widely supported, so it is often used in data exchange to move tabular data between different computer programs that support the format. For example, a TSV file might be used to transfer information from a database to a spreadsheet.

Example

The head of the Iris flower data set can be stored as a TSV using the following plain text (note that the HTML rendering may convert tabs to spaces):

Sepal length	Sepal width	Petal length	Petal width	Species
5.1	3.5	1.4	0.2	I. setosa
4.9	3.0	1.4	0.2	I. setosa
4.7	3.2	1.3	0.2	I. setosa
4.6	3.1	1.5	0.2	I. setosa
5.0	3.6	1.4	0.2	I. setosa

The TSV plain text above corresponds to the following tabular data:

Sepal lengthSepal widthPetal lengthPetal widthSpecies
5.13.51.40.2I. setosa
4.93.01.40.2I. setosa
4.73.21.30.2I. setosa
4.63.11.50.2I. setosa
5.03.61.40.2I. setosa

Character escaping

The IANA media type standard for TSV achieves simplicity by simply disallowing tabs within fields.

Since the values in the TSV format cannot contain literal tabs or newline characters, a convention is necessary for lossless conversion of text values with these characters. A common convention is to perform the following escapes:[3] [4]

!escape sequence!meaning
\nline feed
\ttab
\rcarriage return
\\backslash
Another common convention is to use the CSV convention from and enclose values containing tabs or newlines in double quotes. This can lead to ambiguities.[5] [6]

Line endings

Records are typically separated by a line feed, as is typical for Unix platforms, or a carriage return and line feed, as is typical for Microsoft platforms. Some programs may expect the latter. The de-facto specification[7] specifies that records are separated by an, but does not specify any specific newline.

See also

References

Sources

Further reading

Notes and References

  1. Web site: Choose the best file formats. University of Edinburgh. U of Edin. Research Data Support Team. § Formats we recommend. 2023-05-23.
  2. Web site: How To Use Tab Separated Value (TSV) files . 2023-02-01 . International Monetary Fund.
  3. Web site: Dusek . Jason . 2014-05-06 . Linear TSV: simple, line-oriented, tabular data . Data Protocols - Open Knowledge Foundation . v1.0β.
  4. Web site: Dolan . Stephen . 2018-11-01 . Manual . 2023-05-23 . .
  5. Book: Miller, Rob . Text Processing with Ruby: Extract Value from the Data That Surrounds You . 2015-09-22 . Pragmatic Bookshelf . 978-1-68050-492-7 . 94 . en.
  6. Book: Giuseppini . Gabriele . Microsoft Log Parser Toolkit: A Complete Toolkit for Microsoft's Undocumented Log Analysis Tool . Burnett . Mark . 2005-02-10 . Elsevier . 978-0-08-048939-1 . 311 . en.
  7. Web site: IANA: text/tab-separated-values.