Clean text and table data without losing its meaning
A privacy-first workflow for converting small tables, removing duplicate lines, comparing edits, and measuring text before you share or import it.
Reviewed July 15, 2026
Text copied from spreadsheets, terminals, issue trackers, and logs often carries invisible whitespace, inconsistent delimiters, duplicate rows, and accidental secrets. Cleaning it is not just a cosmetic step: changing a header, an empty row, or a leading zero can change the meaning of the data.
This workflow keeps small, sensitive transformations in the browser and makes each destructive choice visible. Maintain an untouched source copy and use the output only after checking the rules required by the destination system.
1. Identify the record boundary and delimiter
Use CSV ↔ JSON Converter when a table has a clear row and column structure. Confirm whether the first row is a header and choose the actual delimiter instead of assuming every comma is a separator. Quoted commas, escaped quotes, line breaks inside quoted cells, and empty cells deserve a small sample test before a large import.
The converter keeps CSV values as strings. That is intentional: guessing whether “0012”, “12”, “2026-07-15”, or “yes” is an identifier, number, date, or boolean can silently change a downstream record.
- Test a row containing the delimiter inside quotes.
- Check an empty cell, a quoted empty string, and a row with fewer columns than the header.
- Confirm the destination’s expected newline, encoding, and header rules after conversion.
2. Normalize lines only when whitespace is not data
Line Sorter & Deduplicator can trim, remove empty lines, sort, reverse, and retain the first representative of a duplicate. Decide what “same line” means before enabling cleanup. Case-insensitive comparison and trimming can merge values that look similar but are distinct identifiers.
For numeric-looking lines, numeric comparison avoids the lexical order 1, 10, 2. Mixed lines containing labels, units, locale-specific separators, or very large values still need a manual check because a sorting rule cannot infer the business order.
- Use Unique when the first occurrence is the correct representative; otherwise inspect duplicates before deleting them.
- Leave empty lines and leading whitespace untouched when they separate groups or encode hierarchy.
- Review the output count and compare it with the original number of non-empty records.
3. Compare the cleaned result with the source
Put the source and cleaned text into Diff Viewer using its left/right separator. Look for accidental header changes, dropped rows, altered line endings, or a value that was normalized more aggressively than intended. The diff is a review aid, not a semantic validator for the destination application.
When the data contains structured values, format a small JSON sample before comparing it. Stable indentation makes field-level changes easier to see, while a compact copy can remain available for the final import or API request.
- Compare a representative sample as well as the first and last records.
- Check row counts after every operation that can remove or merge lines.
- Keep a record of the selected options so another person can reproduce the cleaning step.
4. Measure and redact before sharing
Use Text Counter to check characters, words, lines, bytes, and estimated reading time when a field, prompt, issue, or import has a size limit. Then scan the final text for credentials, personal data, access tokens, private URLs, and internal hostnames before placing it in an issue or sending it to a third party.
Local processing avoids an intentional upload by ToolFable, but sharing is still a separate decision. A browser extension, clipboard manager, screenshot, analytics system, or destination application may retain what you copy.
Tools used in this guide
Open the tools below to complete each step. Every tool page includes its own input rules, examples, FAQ, and limitations.