----------------------------------------
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 "" |
  /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