Text Column Extractor

Extract specific columns from CSV, TSV, fixed-width, regex or JSON data. Preview as table, re-join with any delimiter.

Input Data
Paste data above and configure extraction options.

How to Use the Column Extractor

  1. Choose an extraction mode — By Delimiter for CSV/TSV, Fixed Width for positional data, Regex for pattern-based extraction, or JSON Path for NDJSON files.
  2. Configure the options — set the delimiter, column numbers, ranges, pattern, or paths.
  3. Paste your data into the input area. The preview table updates instantly.
  4. Choose an output delimiter to control how columns are joined in the text output.
  5. Copy or download the extracted columns.

Extraction Modes Explained

By Delimiter

The most common mode for CSV, TSV, pipe-delimited, and space-separated data. Specify the delimiter and a comma-separated list of column numbers (1-based) to extract. You can also specify ranges like 1-3 (columns 1 through 3) or mix both: 1,3-5,7. Enable "Has Header" to use the first row as column headers in the preview table. The delimiter can be any character including tab, pipe, semicolon, or a multi-character string.

Fixed Width

For data where columns are defined by character positions, not separators. This format is common in mainframe exports, financial data files, government data releases, and legacy system outputs. Specify column ranges as start-end pairs (zero-based, end-exclusive). For example, 0-10,10-25,25-40 extracts three columns of 10, 15, and 15 characters respectively. Trailing whitespace in each extracted value is trimmed automatically.

Regex Capture Groups

Applies a regular expression to each line and treats each capture group as a column. For example, (\d{4}-\d{2}-\d{2})\s+(.+)\s+\$(\d+\.\d+) applied to a log line like 2026-03-22 Purchase $49.99 would extract three columns: date, description, and amount. Lines that don't match the pattern are skipped. This mode is ideal for extracting structured data from logs, reports, or text with a consistent but non-standard format.

JSON Path

For NDJSON (newline-delimited JSON) files, where each line is a separate JSON object. Specify dot-notation paths to extract properties as columns. For example, name,age,address.city extracts three columns from objects like {"name":"Alice","age":30,"address":{"city":"NYC"}}. Array access uses bracket notation: tags[0]. This is useful for processing API response dumps, database exports, or log files in JSONL format.

Common Use Cases

  • Extracting email addresses from a CSV with many columns
  • Pulling name and price from a product export to create a price list
  • Extracting date and amount columns from a bank statement export
  • Parsing log files by capturing timestamps and error messages with regex
  • Converting NDJSON API exports to CSV for spreadsheet import
  • Processing fixed-width government data files into structured CSV
  • Re-ordering columns by extracting and re-joining in a different order

Working with Large Datasets

This tool handles data up to several megabytes in your browser. For very large files (100MB+), consider command-line tools: cut (Unix) for delimiter-based and fixed-width extraction, awk for pattern-based extraction, jq for JSON processing. These stream files without loading them into memory. For files that fit in your browser, this tool offers the advantage of instant visual feedback with the table preview — making it easy to verify you are extracting the right columns before saving the result.

Frequently Asked Questions

Paste your CSV text into the input area, select the "By Delimiter" mode, choose "Comma" as the delimiter, and enter the column numbers you want to extract (e.g., "1,3" for the first and third columns). The preview table will show your extracted columns instantly.
Fixed-width extraction splits each line by character positions rather than a delimiter. You define column ranges as start-end pairs (e.g., "0-10,10-25,25-40"). This is used for legacy mainframe data, bank statement exports, and any file where columns are defined by character position rather than separators.
In Regex mode, enter a pattern with capture groups using parentheses. Each capture group becomes a column. For example, the pattern '(\w+)\s+(\d+)' applied to 'Alice 42' would extract two columns: 'Alice' and '42'. Lines that don't match the pattern are skipped.
JSON Path mode reads one JSON object per line (NDJSON/JSONL format) and extracts specified property paths. Enter paths like 'name,age,address.city' and each becomes a column. Nested properties use dot notation. Array indices use bracket notation like 'items[0].name'.
Yes. After extracting columns, use the "Output Delimiter" option to choose how columns are joined in the text output. You can join with comma (for CSV), tab (for TSV), pipe, space, or any custom character. The preview table always shows columns separated regardless of the output delimiter.