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