Convert TSV to YML

Drag and drop files here or click to select.
Max file size 100mb.
Uploading progress:

TSV vs YML Format Comparison

Aspect TSV (Source Format) YML (Target Format)
Format Overview
TSV
Tab-Separated Values

Plain text format for storing tabular data where columns are separated by tab characters. Clipboard-native format used when copying from spreadsheets, a bioinformatics standard, and free from quoting issues that plague CSV files. Simpler and more reliable than CSV for data exchange.

Tabular Data Clipboard-Native
YML
YAML Ain't Markup Language

A human-friendly data serialization language using indentation-based syntax. YML is the shortened file extension for YAML, widely used for Docker Compose (docker-compose.yml), CI/CD pipelines (.gitlab-ci.yml), and configuration files. The .yml extension is especially popular in DevOps and containerization ecosystems.

Configuration DevOps Standard
Technical Specifications
Structure: Rows and columns in plain text
Delimiter: Tab character (U+0009)
Encoding: UTF-8 or ASCII
Headers: Optional first row as column names
Extensions: .tsv, .tab
Structure: Indentation-based key-value pairs
Data Types: String, Integer, Float, Boolean, Null, Date, List, Map
Encoding: UTF-8
Standard: YAML 1.2 (2009)
Extensions: .yml, .yaml
Syntax Examples

TSV uses tab-separated values:

Name	Age	City
Alice	30	New York
Bob	25	London
Charlie	35	Tokyo

YML uses indentation-based syntax:

- Name: Alice
  Age: 30
  City: New York
- Name: Bob
  Age: 25
  City: London
- Name: Charlie
  Age: 35
  City: Tokyo
Content Support
  • Tabular data with rows and columns
  • Text, numbers, and dates
  • No quoting needed for commas or special chars
  • Native clipboard format from spreadsheets
  • Large datasets (millions of rows)
  • Bioinformatics standard (BLAST, BED, GFF)
  • Complex nested data structures
  • Typed values (strings, numbers, booleans)
  • Lists and dictionaries
  • Multi-line strings (literal and folded)
  • Anchors and aliases for reusable data
  • Comments for inline documentation
  • Multiple documents in one file
Advantages
  • No quoting issues unlike CSV
  • Clipboard-native (copy-paste from Excel)
  • Standard in bioinformatics pipelines
  • Simpler parsing than CSV
  • Tab characters rarely appear in data
  • Human-readable with aligned columns
  • Extremely human-readable syntax
  • .yml is the Docker Compose convention
  • Native comment support
  • Standard for CI/CD configurations
  • Typed values without schemas
  • Widely supported across languages
Disadvantages
  • No formatting or styling
  • No data types (everything is text)
  • Tab characters can be invisible in editors
  • No multi-sheet support
  • No metadata or schema definition
  • Indentation-sensitive (whitespace errors)
  • Implicit typing can cause surprises
  • Security concerns with untrusted input
  • Not ideal for large tabular datasets
  • Tabs not allowed for indentation
Common Uses
  • Bioinformatics data exchange
  • Spreadsheet clipboard operations
  • Database export/import
  • Scientific data processing
  • Log file analysis and ETL pipelines
  • Docker Compose (docker-compose.yml)
  • GitLab CI/CD (.gitlab-ci.yml)
  • Travis CI (.travis.yml)
  • Kubernetes deployments
  • Application configuration files
  • Swagger/OpenAPI specifications
Best For
  • Clipboard data from spreadsheets
  • Bioinformatics and scientific workflows
  • Simple, unambiguous data exchange
  • Automation and scripting pipelines
  • Docker and container configuration
  • CI/CD pipeline definitions
  • Application settings and environment config
  • Human-editable structured data
Version History
Introduced: 1960s (early computing)
Standard: IANA text/tab-separated-values
Status: Widely used, stable
MIME Type: text/tab-separated-values
Introduced: 2001 (Clark Evans, Ingy dot Net, Oren Ben-Kiki)
Current Version: YAML 1.2 (2009)
Status: Widely adopted, stable
MIME Type: application/x-yaml, text/yaml
Software Support
Microsoft Excel: Full support
Google Sheets: Full support
LibreOffice Calc: Full support
Other: Python, R, pandas, all databases, BLAST
Docker: Native .yml config format
Python: PyYAML, ruamel.yaml
JavaScript: js-yaml
Other: Go, Java (SnakeYAML), Ruby (Psych), all major languages

Why Convert TSV to YML?

Converting TSV data to YML format transforms flat tab-separated tabular data into a human-readable, indentation-based data format that is the standard for Docker Compose, CI/CD pipelines, and modern DevOps configuration. The .yml extension is the conventional choice for Docker (docker-compose.yml), GitLab CI (.gitlab-ci.yml), and Travis CI (.travis.yml), making this conversion essential for containerization workflows.

TSV is the clipboard-native format: when you copy cells from Excel or Google Sheets, the data is tab-separated. This makes TSV the natural starting point for converting spreadsheet data into configuration files. Unlike CSV, TSV has no quoting issues since tab characters virtually never appear in actual data. Our converter takes this clean, unambiguous input and produces properly indented YML with automatically detected data types.

This conversion is particularly valuable for DevOps teams who manage infrastructure configurations in spreadsheets. For example, you might maintain a list of Docker services, port mappings, and resource limits in a shared Excel spreadsheet. Converting this TSV export to YML gives you a configuration file that can be used directly with Docker Compose or adapted for Kubernetes manifests.

TSV to YML conversion also bridges the gap between non-technical stakeholders who work in spreadsheets and development teams who consume YML configuration files. The converter produces clean, well-indented YML that follows the YAML 1.2 specification and works with all major YML parsers including PyYAML, js-yaml, and SnakeYAML.

Key Benefits of Converting TSV to YML:

  • Docker Compose Ready: Output uses .yml convention standard for Docker and container tools
  • Clipboard-Native Input: TSV is what you get when copying from Excel or Google Sheets
  • No Quoting Hassles: TSV avoids the delimiter conflicts that plague CSV files
  • Typed Values: Numbers, booleans, and null values are properly typed in YML output
  • CI/CD Compatible: Output works with GitLab CI, Travis CI, GitHub Actions, and more
  • Human Readable: Clean indentation makes the output easy to review and edit
  • Data Integrity: All cell values are preserved with appropriate type conversion
  • Universal Parsing: Compatible with all YML/YAML parsers across languages

Practical Examples

Example 1: Docker Service Registry

Input TSV file (docker_services.tsv):

service	image	port	restart	memory_limit
web	nginx:alpine	80	always	256m
app	myapp:latest	8080	on-failure	512m
db	postgres:16	5432	always	1g

Output YML file (docker_services.yml):

- service: web
  image: "nginx:alpine"
  port: 80
  restart: always
  memory_limit: 256m
- service: app
  image: "myapp:latest"
  port: 8080
  restart: on-failure
  memory_limit: 512m
- service: db
  image: "postgres:16"
  port: 5432
  restart: always
  memory_limit: 1g

Example 2: CI/CD Pipeline Matrix

Input TSV file (ci_matrix.tsv):

stage	runner	timeout	allow_failure	dependencies
build	ubuntu-latest	600	false	none
test	ubuntu-latest	1200	false	build
deploy	ubuntu-latest	300	true	test

Output YML file (ci_matrix.yml):

- stage: build
  runner: ubuntu-latest
  timeout: 600
  allow_failure: false
  dependencies: none
- stage: test
  runner: ubuntu-latest
  timeout: 1200
  allow_failure: false
  dependencies: build
- stage: deploy
  runner: ubuntu-latest
  timeout: 300
  allow_failure: true
  dependencies: test

Example 3: Monitoring Alert Rules

Input TSV file (alerts.tsv):

alert_name	metric	threshold	severity	notify
HighCPU	cpu_usage	90	critical	pagerduty
LowDisk	disk_free	10	warning	slack
HighLatency	response_time_ms	500	warning	email

Output YML file (alerts.yml):

- alert_name: HighCPU
  metric: cpu_usage
  threshold: 90
  severity: critical
  notify: pagerduty
- alert_name: LowDisk
  metric: disk_free
  threshold: 10
  severity: warning
  notify: slack
- alert_name: HighLatency
  metric: response_time_ms
  threshold: 500
  severity: warning
  notify: email

Frequently Asked Questions (FAQ)

Q: What is the difference between YML and YAML?

A: YML and YAML are the same format with different file extensions. ".yaml" is the official recommended extension by the YAML specification, while ".yml" is a shorter alternative that became popular through Docker Compose (docker-compose.yml), GitLab CI (.gitlab-ci.yml), and Travis CI (.travis.yml). Both extensions are processed identically by all YAML parsers. Use .yml when your tool or project convention expects it.

Q: Why is TSV better than CSV for this conversion?

A: TSV uses tab characters as delimiters, which virtually never appear in actual data. This eliminates the quoting issues that plague CSV files where commas in cell values require special handling. TSV is also the clipboard-native format. When you copy data from Excel or Google Sheets, the result is tab-separated. This makes TSV inherently simpler and more reliable for conversion to YML.

Q: How does the converter handle data types in YML?

A: The converter automatically detects data types in your TSV values. Pure numbers become YML integers or floats, "true"/"false" values become YML booleans, empty cells become null, and everything else becomes strings. Values that could be misinterpreted (like version numbers "3.11" or port strings) are properly quoted to prevent YAML parsers from converting them incorrectly.

Q: Can I use the output with Docker Compose?

A: The generated YML follows the YAML 1.2 specification and is valid for any YAML parser, including Docker Compose. However, Docker Compose expects a specific structure (services, networks, volumes sections). The converter output uses a generic list format that you can restructure to match docker-compose.yml schema. It provides correctly typed values as a starting point.

Q: Is TSV the same as what I get when copying from Excel?

A: Yes! When you select cells in Excel, Google Sheets, or LibreOffice Calc and copy them to the clipboard, the data is stored in TSV format (tab-separated values). You can paste this into a text editor, save it as a .tsv file, and convert it directly to a .yml configuration file. This makes TSV the most natural format for spreadsheet-to-DevOps workflows.

Q: Why does YML not allow tabs for indentation?

A: The YAML specification explicitly prohibits tab characters for indentation, allowing only spaces. This is intentional to prevent inconsistencies between editors that display tabs with different widths. While your TSV input uses tabs as data delimiters (which is perfectly fine), the YML output uses spaces for indentation as required by the specification.

Q: How are special characters handled in YML output?

A: Values containing special YAML characters (colons, hashes, brackets, braces, etc.) are automatically quoted with double quotes to prevent parsing errors. The converter intelligently determines which values need quoting and which can remain unquoted for maximum readability, while ensuring the output is always valid YML.

Q: Can I convert large TSV files to YML?

A: Yes, the converter handles large TSV files efficiently. However, YML is primarily designed for configuration files, not large datasets. Each TSV row becomes a multi-line list item in YML, so the output will be significantly larger than the input. For TSV files with thousands of rows, consider using JSON as a more compact alternative target format.