CSV Filter
Keep CSV rows matching a simple condition over a column. Runs entirely in your browser, no upload, no sign-up.
CSV filter
Keep only the rows of a CSV that match a condition. Write it as
<column> <op> <value> — for example age > 28, city == NYC, or
name contains al. It runs in your browser; nothing is uploaded.
The condition language
- Column — a header name (when first row is a header is on) or a 1-based index.
- Operators —
==,!=,<,<=,>,>=, andcontains. - Comparison — numeric when both the cell and the value are numbers (so
age > 9works as you'd expect), otherwise a string comparison.containsis a case-insensitive substring match. - Spaces are optional:
age>=30works too.
FAQ
Is my data uploaded?
No — it's processed locally with WebAssembly.
Can I combine conditions (AND/OR)?
Not yet — run the tool twice, or chain it with the other CSV tools. (Multi-condition support is a planned addition.)
Does it work with semicolon- or tab-separated files?
Yes. Set the delimiter to comma, tab, semicolon, or pipe (or type any
single character). The filtered output is written back with the same
delimiter, and rows with differing field counts are tolerated.
What if my CSV has no header row?
Turn first row is a header off and refer to columns by 1-based index —
e.g. 2 > 100 filters on the second column. With the header option on, the
header row itself is always kept in the output; note that contains needs
spaces around it (name contains al), while a bare = is accepted as
equality.
Developer & Automation Access
Run it from the terminal
Same engine as this page, headless — via the gizza CLI:
gizza tool csv-filter "name,age
Alice,30
Bob,25" 'condition=age > 28'New to the CLI? Get gizza →
Open it by URL
Pre-fill and auto-run this tool with query parameters — the names match the API/CLI:
https://gizza.ai/tools/csv-filter/?data=name%2Cage%0AAlice%2C30%0ABob%2C25&condition=age%20%3E%2028&header=true&delimiter=%2CMachine-readable descriptor: tool.json — title + parameters JSON Schema for agents.
