From 15fd6da9f5f142453000daf1342354ef265a86cf Mon Sep 17 00:00:00 2001 From: Tom Ryder Date: Thu, 14 Jul 2016 14:13:13 +1200 Subject: Add ax(1) --- bin/ax | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100755 bin/ax (limited to 'bin') diff --git a/bin/ax b/bin/ax new file mode 100755 index 00000000..3840acf5 --- /dev/null +++ b/bin/ax @@ -0,0 +1,43 @@ +#!/bin/sh + +# ax(1): Evaluate an Awk expression given on the command line with an optional +# format. + +# Usage function +usage() { + printf 'ax: USAGE: ax [format] expression\n' +} + +# Check number of arguments +case $# in + + # If one argument, we assume format is %s + 1) form=%s expr=$1 ;; + + # If two arguments, first is format, second expression + 2) form=$1 expr=$2 ;; + + # Any other number of arguments is wrong + *) + usage >&2 + exit 2 + ;; +esac + +# Give help if requested +case $1 in + -h|--help|-\?) + usage + exit 0 + ;; +esac + +# Form program +prog=$(printf ' + BEGIN { + printf "%s\\n", %s + } +' "$form" "$expr") + +# Run the program +awk "$prog" -- cgit v1.2.3