aboutsummaryrefslogblamecommitdiff
path: root/bin/ax
blob: 3840acf5aebdeddfca8b31d12768bbe9153b1846 (plain) (tree)










































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