Text Processing (Grep/Sed/Awk)
Stop struggling with nested delimiters when parsing CSVs
🧩 The Challenge
Dealing with CSV files that contain commas inside quoted strings is a special kind of hell. I’ve wasted way too much time trying to use cut or simple awk field separators on data that inevitably breaks the format.
💡 The Fix
Use awk’s built-in support for processing fields by defining a specific field separator that handles quotes correctly, or just use the gensub function to clean up the noise before you start parsing.
awk -v FPAT='([^,]+)|("[^"]+")' '{print $2, $4}' data.csv
⚙️ Why It Works
Setting the FPAT variable tells awk to treat anything inside quotes as a single field rather than splitting on every single comma it sees. It basically flips the logic of standard field separation on its head and makes CSVs actually readable.
🚀 Pro-Tip: If you need to strip those quotes after parsing, just pipe it through tr -d ‘”‘.
Linux Tips & Tricks | © ngelinux.com | 10/14/2026
