Home

Awesome

Structured text tools

The following is a list of text-based file formats and command-line tools for manipulating each.

Contents

awk-like

Tools that work with lines of fields separated by delimiters but do not necessarily support CSV field quoting.

awk

AWK/awk is a programming language and a POSIX-standard command-line tool. (You will sometimes see "awk" used for the tool and "AWK" for the language. This document follows this convention. GNU Awk uses "Awk".) If you run Linux, macOS, or a BSD, you almost certainly have it installed. See below for Windows.

POSIX commands

Other tools

CSV

CSV, TSV, and other delimiter-separated value formats. Tools belong on this list if they support field quoting.

SQL-based tools

See the big comparison list. It covers

HTML

JSON

TOML

With a format converter like Remarshal you can use JSON tools to process TOML and YAML, but make sure you do not lose data in the conversion.

XML

See also

YAML

Configuration files

/etc/hosts

INI

Multiple formats

Log files

Multiformat tools

Tools that support multiple input formats. Programs that convert between only two formats in both directions are excluded. We only count JSON support that is separate from YAML.

Templating for structured text

Listed below are restricted programming language interpreters and templating tools that produce structured text output. They are generally intended to remove repetition in configuration files. They are distinct from unstructed templating tools like the jinja2 CLI program, which should not be added to this table.

See also

Extra: interactive TUIs

Extra: CLIs for single-file databases

License

The contents of this document is licensed under the Creative Commons Attribution 4.0 International License. By contributing you agree to release your contribution under this license.

Disclosure

csv2html, hosts, Sqawk, jsonwatch, Remarshal, and initool are developed by the curator of this document.