Skip to content

Repository files navigation

csvfmt

CLI tool to convert CSV files between locale formats (EN/DE).

German Excel exports use ; as delimiter and , as decimal separator, while English exports use , and .. This tool auto-detects the source format and converts with no interaction required.

Install

go install github.com/fxsml/csvfmt@latest

Or build from source:

go build -o csvfmt .

Usage

csvfmt -i FILE [options]

Auto-detection handles everything by default — just pass the input file:

csvfmt -i data_de.csv
# writes data_de.fmt.csv

Options

Flag Default Description
-i, --input required Input CSV file
-o, --output <input>.fmt.csv Output file
--src-delim auto Source delimiter: comma, semicolon, tab
--src-decimal auto Source decimal separator: dot, comma
--dst-delim opposite of source Target delimiter
--dst-decimal opposite of source Target decimal separator
--decimal-columns auto-detected Comma-separated column names to convert

Examples

# German to English (auto-detected)
csvfmt -i data_de.csv

# Explicit output path
csvfmt -i data_de.csv -o data_en.csv

# Override target format
csvfmt -i data.csv --dst-delim semicolon --dst-decimal comma

# Convert only specific columns
csvfmt -i data.csv --decimal-columns "Price,Total"

Output

input:    data_de.csv
output:   data_de.fmt.csv
rows:     1042
src:      delim=semicolon  decimal=comma
dst:      delim=comma  decimal=dot
columns:  Price, Total, Tax

Supported formats

Locale Delimiter Decimal Example
EN , . 1,234.56
DE ; , 1.234,56
Tab \t either 1234.56

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages