What it does
This is a line filter. It reads one record per line and decides whether that whole line stays or goes. A line that contains any of your terms is removed by default; a line that does not match is kept exactly as it was, including its spacing and punctuation.
It is different from find and replace. Replace edits the matched text and leaves the line in place. Filter asks a yes-or-no question about the line and either keeps it or drops it. That makes it useful for log excerpts, keyword lists, exported notes, and any list where the presence of a phrase marks a row as irrelevant.
Any, all, and inversion
Enter one term per line. With “any term matches,” a line is removed when at least one term appears anywhere in it. With “every term matches,” all of the terms must appear before the line is removed. The terms do not have to be adjacent, and their order does not matter. Empty terms are ignored, and duplicate terms are collapsed.
The action selector flips the test. “Keep only matching lines” is the inverse of removal: the matched lines survive and the rest are dropped. In both directions, the line content is not changed. If you need to edit the surviving text as well, run it through find and replace or clean text afterward.
Whole words and regex
Whole-word matching is the safer choice for short terms. Without it, “cat” also matches “catalog” and “copycat.” With it, the engine checks that the characters immediately around the match are not letters, numbers, or underscores. The check is Unicode-aware, so accented letters count as word characters too.
Regular expressions are available when a plain substring is not enough. Each line in the terms box is compiled as its own pattern, with the Unicode flag and case-insensitive matching unless you enable case sensitivity. A syntax error is shown above the result rather than guessed around. Complex patterns can be slow on long lines, so keep an eye on the tab if a pattern uses heavy backtracking.
Examples
Before
Server alpha is healthy
Server beta is down
Database alpha is healthy
Cache beta is warm
Backup alpha is missingAfter
Server alpha is healthy
Database alpha is healthy
Backup alpha is missingThe two lines containing “down” and “warm” are removed. The alpha lines stay because neither term appears in them. The blank line behavior is unchanged: there is no blank line in this input, and the filter does not invent one.
Before
2026-10-27 09:14 INFO worker started
2026-10-27 09:15 ERROR queue timeout
2026-10-27 09:16 INFO retry scheduled
2026-10-27 09:17 ERROR disk fullAfter
2026-10-27 09:15 ERROR queue timeout
2026-10-27 09:17 ERROR disk fullIn keep-only mode the filter is an inclusion list. Both ERROR lines survive, including their timestamps and spacing. The INFO lines disappear. If the log used lowercase “error,” the default case-insensitive setting would still match; turn on case sensitivity when the distinction matters.
Limits worth knowing
- It is line-oriented. A record that spans several lines is several records. Multiline quoted CSV fields, stack traces, and wrapped prose will be filtered line by line, not as logical blocks.
- Terms are literal by default. A period, bracket, or asterisk is an ordinary character until you enable regex. That is deliberate: log lines and filenames are full of punctuation that would otherwise become a pattern.
- Whole-word is not a dictionary. It checks boundaries, not meaning. It will not distinguish “bank” as a financial institution from “bank” as a river edge.
- Regex can be expensive. A pathological pattern on a very long line can make the tab unresponsive. Use a simple substring when it will do, and test complex patterns on a small excerpt first.
- No file upload. Paste the text or copy it from a local file. The page does not read files from disk by itself.
Page updated