xled Excelano LLC
winget install --id=Excelano.xled -e sed and awk for tabular data, regex and compute over CSV and DSV ranges
winget install --id=Excelano.xled -e sed and awk for tabular data, regex and compute over CSV and DSV ranges
xled brings the muscle memory of sed and awk to CSV and DSV files. It borrows awk's field model, sed's s/// substitution, and ed's live in-memory buffer, and points all three at Excel-style ranges: a column by letter or name, a row span, a rectangle, a regex-selected set of cells. You address part of the table, you give it a command, and it shows you the result before anything is written.
Project page: https://excelano.com/xled/ · Tutorial: an introduction
# strip the currency formatting from the price column, in place
xled '[price] s/[$,]//g' products.csv
# derive a tax-inclusive total, rounded like money
xled '[total] = round(num([price]) * 1.0825, 2)' products.csv
Spreadsheets that arrive as CSV are full of small, repetitive damage: a dollar sign glued to every number, a leading apostrophe, inconsistent casing, a column that should be split, a header buried under three title rows. The reach for these is usually a throwaway pandas script or a fragile awk -F, one-liner that mishandles the first quoted comma. xled is the tool in between: faithful CSV parsing, two-dimensional addressing that matches how you already think about a sheet, and a transform vocabulary small enough to keep in your head.
It is deliberately not a query engine. xled rewrites cells and reshapes nothing — it never adds or removes rows behind your back, never reorders columns, never coerces a value you didn't ask it to. Join, group, aggregate, and multi-predicate query belong to SQL; xled hands those off to xql rather than growing into them.
Add the Excelano apt repository once (one-time setup):
curl -fsSL https://excelano.com/apt/setup.sh | sudo sh
Then install it, so apt upgrade keeps it current:
sudo apt install xled
Both amd64 and arm64 packages ship with every release.
On macOS or Linux, tap and trust the repository once — Homebrew gates third-party taps behind explicit trust (one-time setup):
brew tap excelano/tap
brew trust excelano/tap
Then install it, so brew upgrade keeps it current:
brew install xled
With WinGet, so winget upgrade keeps it current:
winget install Excelano.xled
Or run the standalone installer in PowerShell:
powershell -ExecutionPolicy ByPass -c "irm https://github.com/excelano/xled/releases/latest/download/xled-installer.ps1 | iex"
curl -fsSL https://raw.githubusercontent.com/excelano/xled/main/install.sh | sh
The installer downloads the right tarball for your platform from the GitHub release, verifies its checksum, and drops the binary into ~/.cargo/bin (or the equivalent on Windows). If xled isn't found on your PATH afterward, ensure ~/.cargo/bin is on it. Releases also ship raw tarballs (xled-*.tar.xz / .zip) for manual installation. To uninstall:
curl -fsSL https://raw.githubusercontent.com/excelano/xled/main/uninstall.sh | sh
That removes the binary from ~/.cargo/bin; you can also just rm ~/.cargo/bin/xled.
If you have a Rust toolchain, install the published crate from crates.io. This compiles from source rather than fetching a prebuilt binary, so it is slower than the installer above but needs nothing else:
cargo install xled
xled requires only a Rust toolchain. Four pure-Rust crates carry the load (regex, csv, clap, rustyline); there are no C dependencies and no runtime.
cd xled
cargo build --release
The binary is at target/release/xled.
xled '