Skip to content

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

Options

A header name, a 1-based number, or * for any column.

0 chars · 0 lines
The result will appear here.

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?

  1. Paste the CSV or open a file.
  2. Enter the column (name, number or *) and pick a condition.
  3. Type the value to compare with, or a regular expression for the regex condition.
  4. 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.

More tools in JSON & Data →