Convert TSV to YML
Max file size 100mb.
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 |
|
|
| Advantages |
|
|
| Disadvantages |
|
|
| Common Uses |
|
|
| Best For |
|
|
| 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.