Text Processing (Grep/Sed/Awk)
Cleaning up messy logs with sed backreferences
🧩 The Challenge
You are staring at a massive legacy log file where the timestamps are in a format that breaks your new analysis tool, and manually editing a million lines isn’t happening. I once spent three hours writing a fragile python script to fix dates before realizing sed could do the heavy lifting in one pass.
💡 The Fix
Use sed capture groups to rearrange parts of a line without having to know what the exact data inside the capture is beforehand. It makes reformatting rigid data structures look like magic.
sed -E 's/([0-9]{4})-([0-9]{2})-([0-9]{2})/\3\/\2\/\1/g' input.log > fixed.log
⚙️ Why It Works
Parentheses create capture groups that sed stores in registers, which you can then drop back into the replacement string using the \n notation. By using -E, you avoid the headache of escaping every single parenthesis or pipe character.
🚀 Pro-Tip: Stick to standard regex unless you absolutely need extended mode, otherwise your scripts will break on older BSD-based systems.
Linux Tips & Tricks | © ngelinux.com | 7/12/2026
