I've been doing a lot of text manipulation lately, and for most of my day-to-day tasks I've been able to clunk along using grep and sed with the appropriate pipes. On occasion I'll write a quick one-off C/C++ program if I can't figure out how to parse a file using those tools.
Lately I've had to process some more sophisticated files (such as performing pattern matching across multiple lines), and I'm finally coming to grips with the fact that I need to learn a text manipulation language. It will be a welcome addition to my mental tool belt.
I know there are a host of contenders out there (Python, Ruby, Perl, and AWK come to mind). AWK seems nice because it's purpose-built for text manipulation. At the same time, I understand that Python or Ruby can do text manipulation *and* build sophisticated applications. And then there's Perl, which seems so massive and powerful that I'm not sure how to weigh it against the other options.
Is there any significant reason to learn AWK *in addition to* or *instead of* one of these other languages, if I just want to do text processing?