Text Processing (Grep/Sed/Awk)
Stop awk from treating empty fields like they are missing
🧩 The Challenge
You are parsing a CSV export or a log where some values are blank, and suddenly your column count is totally borked. It has burned me so many times when a missing middle column shifts the index of every single field that follows.
💡 The Fix
Instead of relying on column numbers, use a field separator that treats multiple adjacent delimiters as a single block. It keeps your data aligned even when the source is sloppy.
awk -F '[,]+' '{print $2, $4}' filename.csv
⚙️ Why It Works
Setting the field separator to a regular expression like ‘[,]+’ tells awk to squish multiple commas together into one logical separator. You end up with a much cleaner result because you aren’t fighting phantom empty fields anymore.
🚀 Pro-Tip: Use FS=BEGIN instead if you need to set the separator dynamically based on the first line of the file.
Linux Tips & Tricks | © ngelinux.com | 8/10/2026
