Clean Text · browser-local

Filter Text Lines

Filter a list, log, or export by whole lines: keep only the lines that contain a phrase, or remove them. GlyphSift matches the exact text you type — not a pattern — and shows both the kept and the removed lines with their original line numbers so nothing disappears silently.

Index state
draft
Reviewed
2026-09-16
Input limit
5,000 graphemes
23 graphemes23 code points23 bytes
Filter
Live result

Filter Text Lines

Kept

2 lines

1  paid:1
3  paid:3
Removed

1 lines

2  pending:2

Good fit

Use this tool when

  • You want to keep or drop rows that mention a word or code.
  • You need to see which lines were removed, not just the survivors.
  • You are cleaning a log, name list, or exported report.

Keep the original

Avoid it when

  • You need to change characters inside a line — use Find and Replace.
  • You need regular expressions or column logic in this first version.
  • Matching should ignore whole-line context and act on substrings within a line.
01

Reviewed truth vectors

Examples that expose the edge cases

Inputpaid:1 pending:2 paid:3
OutputKept (2): paid:1 / paid:3

Keep lines containing "paid:" returns lines 1 and 3; line 2 moves to Removed.

Inputerror: disk ok: cpu error: net
OutputRemoved (2): error: disk / error: net

Switch to Remove matching lines to drop every line containing "error:".

InputAlpha alpha BETA
OutputCase sensitive keeps only "Alpha"

With case sensitivity on, "Alpha" no longer matches "alpha".

02

Transparent implementation

How it works

  1. 01

    Split the text into lines, keeping their original 1-based line numbers.

  2. 02

    Test each line for the literal match text, optionally case-sensitive.

  3. 03

    Route each line to Kept or Removed; an empty match keeps every line unchanged.

03

Known limitations

What the result cannot promise

Matching is literal text, not a regular expression, in this first version.

The match is case-insensitive unless you turn on case sensitivity.

An empty match text is treated as a no-op and keeps every line.

04

Questions before copying

Frequently asked questions

Does an empty match delete everything?

No. An empty match text is a deliberate no-op: every line is kept and nothing is removed, so a blank field cannot wipe your list.

Can I use a regular expression?

Not in this version. The match is literal text so results are predictable. Character-level edits belong in a find-and-replace tool.

Why do the results show line numbers?

The numbers are the original positions in your input, so you can trace a kept or removed line back to where it came from.

05

Experience, expertise & trust

How we verify this tool

GlyphSift Editorial — Text-engine authors & reviewers

The GlyphSift Editorial team designs the deterministic text engine, writes each tool's examples against real Unicode edge cases, and reviews every claim before a page becomes eligible for indexing. We build and test the software we document; we do not outsource the copy to generic content mills.

Each tool page is reviewed against the same six input classes the engine is tested with — ASCII, emoji, combining marks, non-Latin scripts, empty input, and 5,000-grapheme input — and cannot become eligible if it is only a parameter variation of another page.

Automated evidence

  • Tool-contract & coverage suite30 deterministic cases

    tests/tools-30.test.mjs mirrors the ToolRunner dispatch and asserts every registered engineId returns the contracted output shape, plus a coverage guard so no tool silently drops characters.

    Run in: node --test after a production build (vinext build)
  • Rendered-HTML suite12 deterministic cases

    tests/rendered-html.test.mjs renders the deployed server bundle and asserts the Unicode-version manifest and each wave's tool markup are present in the server-rendered HTML.

    Run in: node --test against the built dist/server bundle
  • Transform & cleanup suite21 deterministic cases

    tests/transform-cleanup.test.mjs exercises each deterministic cleanup and transform action against whitespace, duplicate, ordering, casing, and HTML-to-text edge cases.

    Run in: node --test, no network, no randomness

Standards this tool follows