| ---------------------------------------- | |
| awk is the best | |
| January 23rd, 2018 | |
| ---------------------------------------- | |
| I have a section on this phlog called "Current Books" [0]. That is | |
| the output of a cgi script that queries my Goodreads reading list | |
| via RSS, selects the relevant data, formats and displays it. | |
| This is the heart of that script. It's 1 line of code. | |
| (Fake linebreaks for easy reading) | |
| curl -s "<RSS FEED>" | | |
| /usr/pkg/bin/xml sel | |
| -t | |
| -m "/rss/channel/item" | |
| -v "title" | |
| -o "^" | |
| -v "author_name" | |
| -o "^" | |
| -v "book/num_pages" -n | | |
| awk 'BEGIN { | |
| FS="^"; | |
| books="\n"; | |
| print "Books I am currently reading:" | |
| } | |
| $3 ~ /[0-9]+/ { | |
| pages+=$3; | |
| books=(books $1 "\n by " $2 "\n") | |
| } | |
| END { | |
| print "(" pages " pages left to read)\n", books | |
| }' | | |
| fold -s -w 66 > | |
| "/sdf/arpa/tz/t/tomasino/gopher/reading/currentbooks.txt" | |
| I love awk and I don't get to use it nearly enough. | |
| [0] Currently Reading |