Skip to content

Text Column Extractor

Pull specific columns from CSV, TSV, or any delimited text data

0 lines · 0 characters

Extract and Reorder Columns from Any Delimited Text

Tabular data arrives in many formats — exports from databases, spreadsheet downloads, server logs, API responses — and you rarely need every column. This tool parses delimited text, lets you pick the columns you want by number or range, and outputs just those columns in whatever delimiter you choose. It handles quoted CSV fields, missing values, and inconsistent row lengths without losing data.

Column Selection Syntax

Columns are numbered starting from 1. Separate selections with commas:"1,3,5" extracts the first, third, and fifth columns. Use a dash for ranges:"2-6" extracts columns 2 through 6 inclusive. Combine both:"1,4-7,10" pulls column 1, columns 4 to 7, and column 10. The output preserves the order you specify, so"3,1,2" reorders the columns with the third column first.

Working with CSV and Quoted Fields

When parsing comma-delimited data, the tool follows RFC 4180 conventions. Fields wrapped in double quotes can contain commas, line breaks, and literal quote characters (escaped as two consecutive quotes). This means a field like"New York, NY" stays intact as one column rather than being split in two. The parser strips the enclosing quotes from the output unless the field still needs quoting in the result.

Changing Delimiters Between Input and Output

The input and output delimiters are independent. You can read a tab-separated server log and output the extracted columns as comma-separated values, or parse a pipe-delimited export and produce a tab-delimited file ready for a spreadsheet. This eliminates an extra conversion step that would otherwise require a separate tool or script.

Handling Headers and Uneven Rows

Enabling the header toggle treats the first line as column names and displays them with their numbers so you can identify columns before extracting. Headers are included in the output. If a row has fewer columns than the highest number you selected, the missing positions are output as empty fields rather than skipping the row, so every line in the input produces a line in the output and row alignment is preserved.

Common Use Cases

Data analysts use column extraction to isolate the fields they need before importing into a visualization tool. Developers pull specific columns from log files — timestamps and error messages, for example — to speed up debugging. Content teams extract name and email columns from large contact exports. System administrators parse command output like ps or netstat to focus on process IDs and ports. In each case the goal is the same: reduce a wide dataset to just the columns that matter, without opening a spreadsheet or writing a script.

$ faq

What delimiters are supported?
Tab, comma, semicolon, pipe (|), and any custom single or multi-character delimiter you specify. The tool splits each line on the chosen delimiter and lets you pick which resulting columns to keep.
How do I select which columns to extract?
Enter column numbers separated by commas. Use ranges with a dash:"1,3,5-8" extracts columns 1, 3, 5, 6, 7, and 8. Columns are numbered starting from 1. The output follows the order you specify, so"3,1" reverses those two columns.
Does it handle quoted fields with commas inside?
Yes. When the comma delimiter is selected, the parser follows RFC 4180 rules: fields wrapped in double quotes can contain commas, newlines, and escaped quotes ("") without being split incorrectly.
Can I use the first row as column headers?
Yes. Enable the"First row is header" toggle and the tool displays column names above the input so you can identify which column number corresponds to which header. Headers are preserved in the output.
What happens if a row has fewer columns than requested?
Missing columns are filled with an empty value. The row is still included in the output so that line numbering stays consistent with the original data.
Can I change the output delimiter?
Yes. The output delimiter is independent of the input delimiter. You can read tab-separated data and output comma-separated, or vice versa. This makes the tool useful for quick format conversions.
Is my data sent to a server?
No. All parsing and extraction happens in JavaScript inside your browser. Your text never leaves the page, which makes it safe for sensitive or proprietary data.