Text Column Extractor – Pull Fields Out of Delimited and Aligned Text
Half the data people work with arrives as a rectangle of text: a CSV pasted out of a spreadsheet, the output of ls -l or df -h, a pipe-delimited log, a fixed-width report from a mainframe, or a Markdown table copied from documentation. Getting one field out of that rectangle usually means opening a spreadsheet or reaching for cut and awk. This text column extractor does the same job in the browser: paste the text, say which columns you want, and get just those fields back.
Five ways to split a row
Delimiter mode splits on a character or string you choose and is the equivalent of cut -d, -f2. Whitespace mode splits on runs of spaces and tabs regardless of how many, which is what makes awk '{print $2}' work on visually aligned command output. Fixed width mode cuts by character positions instead, the way cut -c11-20 does, for legacy reports where the columns line up but nothing separates them. Regex mode lets you supply your own splitting pattern such as \s*\|\s* for irregular logs. And Markdown table mode strips the pipes and discards the |---| separator row so a documentation table becomes a plain grid.
Selecting, reordering and removing columns
Columns are selected with a comma-separated list that accepts single positions (2), ranges (2-4), and — when the first row is marked as a header — column names (email). Because the output follows the order you list them in, 3,1,2 is also a column reorderer, which plain cut cannot do. Turning on invert selection flips the meaning entirely: the tool returns every column except the ones you named, which is the quickest way to drop a sensitive field before sharing a file. An indexing toggle switches between 1-based positions, matching awk and cut, and 0-based positions, matching most programming languages.
Quoted fields and ragged rows
Real CSV is messier than it looks. A value like "Smith, John" contains the delimiter, and a naive split turns one row of three fields into four. With quoted-field handling enabled the delimiter scanner follows RFC 4180: a quote only opens a field at the start of that field, a doubled quote inside is a literal quote, and delimiters — and even line breaks — inside quotes are ignored. Rows whose field count differs from the header are flagged as ragged, with their original line numbers listed, so a truncated export shows up immediately instead of quietly producing wrong values.
Reading the output panel
Above the result the tool reports how many rows it processed, how many columns it detected, how many the selection resolved to, and how many extracted cells came out empty. A live column preview table lists each detected column with its header, a sample value, a non-empty count, and an inferred type badge — numeric, date, text, or empty — so you can pick a column by clicking rather than counting fields by hand. When every extracted cell parses as a number, a numeric summary appears with the count, sum, minimum, maximum, and mean at your chosen precision, which is a fast sanity check that you grabbed the column you meant.
Finishing the output
The extracted columns are joined with an output delimiter you control — a comma, a tab, a newline, a pipe, or any string, with \t, \n, \s and \| expanded to real characters. Each value can be wrapped in a prefix and suffix, which is how you turn a column of IDs into a SQL IN ('101', '102') list in one pass. Rows can be deduplicated and sorted alphabetically or numerically, and the finished text can be copied, downloaded as TXT or CSV, or fed straight back into the input to chain a second extraction.
Privacy and limits
Everything runs client-side; no text is uploaded. Files you choose are read locally and capped at 2 MB, and input is capped at 2,000,000 characters and 200,000 lines so the tab stays responsive. The share link carries your split settings and column selection, and the text itself only when it is short enough for a URL — anything longer is deliberately left out rather than silently truncated.