Stop trying to pick columns in awk by counting spaces
Text Processing (Grep/Sed/Awk)
Stop trying to pick columns in awk by counting spaces
🧩 The Challenge
Dealing with logs or command output where the columns aren’t perfectly aligned is a nightmare because multiple spaces make $2 or $3 point to nothing. I’ve wasted way too much time staring at blank output because I miscounted how many tabs or spaces were between values.
💡 The Fix
Use the field separator option to treat multiple consecutive whitespace characters as a single delimiter. It makes parsing variable-width output reliable without needing to guess if there’s one space or three.
awk -F'[[:space:]]+' '{print $2}' your-messy-file.log
⚙️ Why It Works
By using a regex in the -F flag, awk stops treating every single space as a new field and collapses chunks of whitespace into one. It cleans up the noise so your column indices actually map to the data you want.
🚀 Pro-Tip: Add BEGIN{OFS=”,”} to your command if you need to quickly pivot those messy logs into a clean CSV format.
Linux Tips & Tricks | © ngelinux.com | 9/29/2026
