diff options
Diffstat (limited to 'bin')
-rwxr-xr-x | bin/ax | 43 |
1 files changed, 43 insertions, 0 deletions
@@ -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" |