Overview
Introduction
Sensitive or unwanted content in a CSV doesn't always live in a predictable column, a free-text notes field, a comment, or a user-submitted description can contain a name, a slur, or an internal code word anywhere.
CSV Censor scans for that content wherever it appears (in all columns, or a chosen subset) and replaces any matching cell entirely with a mask, so redaction isn't limited to a single known column.
What Is CSV Censor?
A word/pattern-based redaction tool: supply a list of words or regex patterns and a mask value, and every cell matching any of them gets fully replaced.
It supports two matching modes, plain case-insensitive substring matching for a simple word list, or full regular expressions for more precise or pattern-based redaction.
How CSV Censor Works
Each entry in your pattern list is compiled into a case-insensitive regular expression, either literally escaped (plain-word mode) or used as-is (regex mode).
Every cell in scope (all columns, or your chosen subset) is tested against every pattern; a match at any point replaces the entire cell's value with your chosen mask, and the CSV is re-serialized with the same RFC 4180-aware writer used elsewhere in this category.
When To Use CSV Censor
Use this before sharing a CSV that might contain sensitive terms scattered across free-text fields, support tickets, comments, product descriptions.
It's also useful for stripping known internal code names, competitor names, or profanity from an export before it leaves your organization.
Often used alongside CSV Anonymizer and CSV Message Hider.
Features
Advantages
- Scans across every column by default, catching sensitive terms wherever they land, not just in one expected field.
- Supports both simple word lists and full regex patterns, covering everything from a quick profanity filter to precise structured redaction.
- Replaces the whole cell rather than trying to redact partial text, so no fragment of the sensitive content survives in the output.
Limitations
- Whole-cell replacement means a cell with one sensitive word and otherwise-useful content loses all of it, there's no partial in-place masking.
- Plain-word matching is case-insensitive but not typo- or synonym-aware, misspelled or reworded sensitive terms won't be caught.
Examples
Best Practices & Notes
Best Practices
- Test your word list or regex patterns on a small sample first, to confirm they match what you intend without over- or under-matching.
- Restrict to specific columns when you know exactly where sensitive content could appear, it's faster and avoids accidentally masking unrelated matches elsewhere.
- Use regex mode for structured sensitive data (like something matching a specific ID pattern) rather than trying to enumerate every possible value as a plain word.
Developer Notes
Plain-word patterns are regex-escaped (`replace(/[.*+?^${}()|[\]\\]/g, "\\$&")`) before being compiled, so a word list entry containing regex metacharacters is always treated literally; regex-mode patterns are compiled as-is with the `i` flag, and a compile failure (invalid regex) surfaces immediately as an error rather than silently skipping that pattern.
CSV Censor Use Cases
- Redacting profanity or sensitive terms from free-text CSV columns before sharing externally
- Stripping internal code names or competitor mentions from an export
- Masking cells matching a structured pattern (via regex mode) anywhere across a CSV
Common Mistakes
- Expecting partial in-place masking, the whole matching cell is replaced, not just the matched substring.
- Forgetting that plain-word mode is case-insensitive but not typo-tolerant, a misspelled sensitive term will slip through.
Tips
- Combine multiple related words or patterns in one pass rather than running the tool repeatedly, it checks every pattern against every cell in a single scan.
- Follow up with CSV Anonymizer on any remaining identifying columns this tool's word/pattern matching wasn't designed to catch.