Websites:


For my scientific publications go to this page. Below is a reverse-chronological selection of articles I've published online about command line tricks (especially with AWK), shell scripting and a few favourite FOSS applications. Most of these articles have appeared on Andrew Powell's site The Linux Rain.
 
I'm a devoted CLI user and the background image on my computer has the motto Where there's a shell, there's a way. It's probably just an old man's bias.


When will this script finish doing its job?      1 December 2017

A simpler track-changes script      13 November 2017

File manager: open a terminal, but not here      1 November 2017

Shifty dates in Microsoft Excel      3 October 2017

It rains pretty regularly, in the shell      14 September 2017

Tweaking uniq -c      28 August 2017

Quick - what time is it in Singapore?      1 August 2017

A script to find empty fields in a table      16 July 2017

Debian 9 on a Dell OptiPlex 9020 Micro      5 July 2017

How to tidy copied PDF text with a CoPa script      30 June 2017

Sorting numbers inside text strings      15 June 2017

Presentations in a browser      29 May 2017

AWK and a rainfall time series - Part 2      16 May 2017

AWK and a rainfall time series - Part 1      15 May 2017

Xfe file manager: an independent marvel      3 May 2017

BASH a block of bytes      24 April 2017

How to build and edit LibreOffice dictionaries      13 April 2017

The buttons of YAD      2 April 2017

grep vs AWK vs Ruby, and a uniq disappointment      26 March 2017

Scripting an arithmeticker      12 March 2017

Tips for tpp and patat      22 February 2017

Scottish Country Dancing stats      1 February 2017

A script to log what my GPS tells me      17 January 2017

Eek! My rounding is biased!      7 December 2016

Scripting a DNA sequence viewer      8 November 2016

Hunting gremlin characters      21 October 2016

Teach your grandmother to write scripts      14 September 2016

Finding unmatched braces (brackets)      13 August 2016

How to use flags in AWK      16 July 2016

Proofreading for illusions with grep and AWK      18 June 2016

Transposing rows and columns: 3 methods      13 May 2016

I think I like backreferences (sometimes)      1 December 2015

Keeping emails as text files: 2 scripts      28 October 2015

How to interleave, alternate and collapse lines of text on the command line      6 October 2015

The joys of ISOdates      17 September 2015

Scripting a fancy chooser for recently used files      17 August 2015

Gnumeric: a filter-and-export script      28 July 2015

How to insert code snippets on the command line without executing them      12 July 2015

How to read a file N lines at a time in BASH: 3 methods      29 June 2015

Split a table and number the pieces: two methods      28 May 2015

Some baby name problems      1 May 2015

A "Track Changes" script for data cleaning      26 March 2015

How to garble      20 February 2015

DMS to DD to KML with AWK and sed      6 February 2015

Grouping things with AWK      22 January 2015

Building sequences of numbers on the command line      13 January 2015

Building a desktop Wikipedia checker      24 November 2014

Software is not data      7 November 2014

How to repeat a script, or not      21 October 2014

On dates and stuffed non-dates      6 October 2014

The header line: how to add, delete and ignore it      21 September 2014

Joining tables on the command line      2 September 2014

Splitting a file elegantly      29 August 2014

Tips on getting (and suggesting, and editing) user input      1 August 2014

How to get nowhere in particular [generating a random lat/lon]      1 August 2014

Top 10! fun on the command line      21 July 2014

ODT to TXT, but keep the line numbering      30 June 2014

Scripting a 4-color multiple grepper      20 June 2014

Tips on tables      4 June 2014

A pivot table in AWK      23 May 2014

Why I (sometimes) love regular expressions      5 May 2014

Scripting a 'Find-and-Replace' for big text files      23 April 2014

Multiple-item data entry with YAD      7 April 2014

Scripting an OCR text archiver for Trove      23 March 2014

How to kill blank lines elegantly      16 March 2014

Building a gazetteer table from KML files      10 March 2014

Scripting a log for a single application      4 March 2014

Scripting a super-fast points plotter for Google Earth      23 February 2014

Scripting a character chooser with dzen2      13 February 2014

Finding changes in a sorted list: a trick      22 June 2013

A very tiny GIS      5 March 2013

CoPa: 2 scripts for LibreOffice Calc and 1 for the kid in you      29 January 2013

CoPa scripting: change text between copy and paste      21 December 2012

Build a scientific names dictionary for LibreOffice      17 September 2012

Color picking made simple      5 September 2012

Compare two images easily with Geeqie      31 July 2012

Checking a website for incorrect links      25 June 2012

A spreadsheet jukebox      13 June 2012

Basics of KML      21 May 2012

Measures on the command line      2 April 2012

The F4 trick in Gnumeric      23 March 2012

Find time zones with the command line      20 February 2012