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.
go install github.com/fxsml/csvfmt@latestOr build from source:
go build -o csvfmt .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| 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 |
# 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"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
| Locale | Delimiter | Decimal | Example |
|---|---|---|---|
| EN | , |
. |
1,234.56 |
| DE | ; |
, |
1.234,56 |
| Tab | \t |
either | 1234.56 |