CSV Filter
Keep only the CSV rows that match a condition on one column, or on any column at once.
Processed locally in your browser/ Your data stays in your browser.
What is CSV Filter?
Filtering a big export by hand is tedious. This tool tests one column, or every column when you enter *, against a condition and returns only the rows that pass, with the header row kept on top.
Text conditions are equals, does not equal, contains, does not contain, starts with and ends with. Number and date conditions are greater than, less than, at least and at most; values are compared numerically or chronologically when both sides look like numbers or dates. There are also is empty, is not empty and regular expressions (limited to 200 characters and guarded against catastrophic patterns), plus an invert switch and case-insensitive matching.
How does it work?
- Paste the CSV or open a file.
- Enter the column (name, number or *) and pick a condition.
- Type the value to compare with, or a regular expression for the regex condition.
- Adjust ignore case and invert, then copy or download the filtered CSV. The note shows how many rows were kept.
Common use cases
- Extracting all orders above a given amount from a sales export.
- Keeping only the rows from one country or status.
- Finding rows where a required field is empty.
- Isolating lines whose email matches a domain pattern.
Examples
Try this input in the tool above:
id,name,email,city,age 1,Alice Martin,alice@example.com,Paris,34 2,Bob Durand,bob@example.com,"Lyon, France",28 3,Chloé Petit,chloe@example.com,Nice,41 4,David Roux,david@example.com,Paris,19
Privacy
CSV Filter runs entirely in your browser. The text or files you provide are processed on your device and are not uploaded, logged or stored on our servers.
Limitations
Regular expressions run with JavaScript syntax, and patterns with nested quantifiers such as (a+)+ are rejected to keep the page responsive.
Frequently asked questions
How does the * column work?
It tests every cell of the row and keeps the row when at least one cell matches. For "does not" conditions the row is kept only when no cell matches.
Are numbers compared as numbers?
Yes. When the cell and the value both look like numbers, comparisons such as > and <= are numeric, so 9 is smaller than 10. Otherwise text is compared.
What does Invert do?
It keeps the rows that do not match the condition, which is handy for regex and for "starts with" or "ends with" tests.
Related tools
CSV Sorter
Order the rows of a CSV by one column, comparing values as text, natural text, numbers or dates.
JSON & Data
CSV Deduplicator
Find and remove duplicate rows in a CSV, comparing whole rows or only the columns you choose.
JSON & Data
CSV Column Extractor
Keep only the columns you need from a CSV, chosen by header name, position or range, in the order you list them.
JSON & Data
CSV Viewer
Paste CSV text or open a .csv file and inspect it as a table, with row and column counts and the detected delimiter.
JSON & Data
CSV Formatter
Re-serialize messy CSV into a consistent file: same quoting rules, trimmed cells, one delimiter and one line-ending style.
JSON & Data
Regex Tester
Write a pattern, paste some text and see every match highlighted, with its position and capture groups.
Developer Tools
CSV Merger
Combine two CSV texts into one, either by stacking their rows or by placing them next to each other.
JSON & Data
CSV Splitter
Cut a big CSV into manageable files: a fixed number of rows each, a chosen number of equal parts, or one file per value of a column.
JSON & Data