Narrow millions of rows

Filter a 5 GB CSV without writing a query.

Use whole-file search for discovery, then stack typed column filters for a result you can explain and reproduce.

Start broad, finish precise

A whole-file text search answers “where does this token occur?” A column filter answers “which rows have this value in this field?” In csvlite, global search supports case, whole-word and regex options; column filters add text, regex, numeric, date, empty, unique and duplicated predicates.

Example investigation

  1. Filter region to north.
  2. Set amount between 25,000 and 75,000.
  3. Limit occurred_at to the last quarter.
  4. Use regex ^(held|refunded)$ on status when alternatives share a rule.
  5. Confirm the surviving row count, inspect boundary values, then export the current view.

Regex is a scalpel

Prefer equality, contains, numeric or date operators when they express the question. Regex is excellent for structured identifiers, optional segments and a small set of alternatives, but a pattern such as .* can obscure intent. The filter UI reports an invalid pattern instead of silently treating it as plain text.

Timing context

An observed development run filtered an 8 GB, 50-million-row file in 1.3–2.4 seconds on a 13th Gen Intel i7 laptop. That range is not a controlled competitor comparison. The benchmark protocol records raw trials, versions, corpus hashes and cache state.