Extract List Column
Pull one column out of delimited data - CSV (with quoted fields), TSV, semicolon, pipe, or whitespace. 1-based, 0-based, or -1 from the end. Free, offline, client-side, instant, secure.
Pull one column out of multi-column text - comma-, tab-, semicolon-, pipe-, or
space-separated. The CSV path uses an RFC 4180 parser so quoted fields containing
commas survive intact. Indexing is 1-based by default with -1 for last.
How to Use Extract List Column
- Paste your data into the input. Output updates live (200 ms debounce).
- Pick the column separator. The four CSV-style delimiters (comma, tab, semicolon, pipe) use a proper RFC 4180 parser - quoted fields containing the delimiter pass through intact. The two whitespace modes (single space, whitespace run) use plain split.
- Type the column number. By default
1is the first column. Negative numbers count from the right:-1is the last column,-2is the second-to-last. Turn off the "1-based" checkbox if you want 0-based indexing (programmer-style). - Toggle the value options. "Trim whitespace" cleans leading/trailing spaces on each extracted value. "Remove empty values" drops any extracted cell that's empty after trimming.
- Read the stats line. Total rows, extracted count, blank rows skipped, rows that lacked that column, and empty values removed. Each category is separately tracked so you know exactly what happened to your input.
- Copy or download. Ctrl/Cmd + Enter copies. Download saves
extracted-column.txt.
Frequently Asked Questions
What’s the difference between 1-based and 0-based indexing?
1-based starts at 1 (1 = first column, 2 = second) – the convention used by Excel, Google Sheets, awk, and SQL SUBSTRING. 0-based starts at 0 (0 = first column) – the convention used by C, Python, JavaScript, and most programming languages. The default is 1-based to match spreadsheet expectations; turn it off if you’re scripting against the output.
What are negative indices?
They count from the right: -1 = last column, -2 = second-to-last, etc. This works in both 1-based and 0-based modes (negative numbers are the same in either convention). Useful for extracting the last column without counting how many there are. Doesn’t apply if the row has fewer columns than abs(N).
How does the CSV parser handle quoted fields?
Per RFC 4180. A field can be wrapped in "…" and the delimiter doesn’t end it inside the quotes. A literal " inside a quoted field is escaped as "". So "hello, world" is one field; "he said ""hi""" decodes to he said "hi". Embedded newlines in quoted fields are not supported by this tool (each line is treated as one row); use a dedicated CSV tool if you need that.
What happens if rows have different numbers of columns?
Rows that don’t have the requested column are skipped and counted separately as “rows lacked that column” in the stats line. Blank rows (whitespace-only) are skipped and counted as “blank rows”. This way you can see whether your input was uneven or just sparse.
What about whitespace-separated data?
Two modes for that: “Single space” splits on each literal space character (so two spaces in a row produce an empty field between them); “Whitespace run” splits on s+ (any sequence of whitespace becomes one separator). Use the latter for command-output-style logs where columns are aligned with variable spacing. Neither mode treats quoting as special – if you have quoted fields, switch to one of the four character delimiters.
Can I process large lists?
Yes. The parser is O(n) over input characters and the extraction is O(rows). 100,000 rows × 10 columns finishes in well under a second on a modern laptop. The 200 ms input debounce keeps typing-while-editing smooth even on large pasted inputs.
Is my data uploaded?
No. The page loads three static files (HTML, CSS, JS) and then runs entirely in your browser. Your data never leaves the device – no fetch, no XHR, no analytics, no cookies. You can disconnect from the internet after the page loads and the tool still works.
Is this tool free?
Yes – free, unlimited, no signup, no watermark. The extracted column is yours to use anywhere. Attribution to is appreciated but not required.