Peteris Krumins has written a fine little book Awk One-Liners Explained. It’s just 58 pages, and it’s an easy read.
As I commented here, I typically try to master the languages I use. But for some languages, like awk
and sed
, it makes sense to learn just a small, powerful subset. (The larger a language is, the harder it can be to just learn part of it because the features intertwine.) Krumins’ book would be good for someone looking to learn just a little awk rather than wanting to explore every dark corner of the language.
Awk One-Liners Explained is exactly what title would lead you to expect. It has 70 awk
one-liners along with a commentary on each. Some of the one-liners solve common specific problems, such as converting between Windows and Unix line endings. Most of the one-liners are solutions to general types of problems rather than code anyone is likely to run verbatim. For example, one of the one-liners is
Change “scarlet” or “ruby” or “puce” to “red.”
I doubt anybody has ever had to solve that exact problem, but it’s not hard to imagine wanting to do something similar.
Because the book is entirely about one-line programs, it doesn’t cover how to write complex programs in awk
. That’s perfect for me. If something takes more than one line of awk
, I probably don’t want to use awk
. I use awk
for quick file filtering. If a task requires writing several lines of code, I’d use Python.
You can get an idea of the style of the book by reading the author’s blog post Famous Awk One-Liners Explained, Part I: File Spacing, Numbering and Calculations.
* * *
If you’d like to learn the basics sed
and awk
by receiving one tip per day, you can follow @SedAwkTip on Twitter.
On the RSS feed for that, and just re-purchased the book because I couldn’t find my copy. Good stuff in there.
>>looking to learn just a little awk rather than wanting to explore every dark corner of the language.
The thing is, awk is no C++ so it doesn’t really have dark corners (OK, maybe using whitespace for string concatenation is one). For example the AWK book by its authors is under 200 pages long (in which they manage to implement a database, an assembler, and a graphics language). Compare that with Stroustrup’s 1000+ page volume.