diff options
author | Tom Ryder <tom@sanctum.geek.nz> | 2016-07-14 14:13:13 +1200 |
---|---|---|
committer | Tom Ryder <tom@sanctum.geek.nz> | 2016-07-14 14:13:13 +1200 |
commit | 15fd6da9f5f142453000daf1342354ef265a86cf (patch) | |
tree | 4a732c6804d2c0252d04cf3e964523b53b5fa2e6 /bin/ax | |
parent | Use escape for pagebreak char in rfct(1) (diff) | |
download | dotfiles-15fd6da9f5f142453000daf1342354ef265a86cf.tar.gz dotfiles-15fd6da9f5f142453000daf1342354ef265a86cf.zip |
Add ax(1)
Diffstat (limited to 'bin/ax')
-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" |