Stop awk from tripping over custom field separators
Text Processing (Grep/Sed/Awk)
Stop awk from tripping over custom field separators
🧩 The Challenge
Dealing with those legacy app logs that use weird delimiters like double pipes or colons is a nightmare when you’re just trying to grab a username. I’ve spent way too long trying to escape things in sed before realizing awk can handle the mess if you just ask it nicely.
💡 The Fix
Use the -F flag to set your field separator to whatever non-standard garbage the developer decided to throw at you. It saves you from chaining ten greps together.
awk -F '||' '{print $2}' logs/app-access.log
⚙️ Why It Works
Setting the separator as a regex inside that -F argument tells awk exactly where to break the line, so you get clean columns regardless of how wild the format looks. It turns a messy log file into something you can actually parse.
🚀 Pro-Tip: If your delimiter is something tricky like a literal asterisk, make sure you put it in quotes so the shell doesn’t try to expand it before awk sees it.
Linux Tips & Tricks | © ngelinux.com | 7/25/2026
