aboutsummaryrefslogtreecommitdiff
path: root/bin/ax
blob: 8dea72da95666126d56f2cb339311a4d0f806893 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#!/bin/sh
# Evaluate an Awk expression given on the command line with an optional format

# Count 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
    *)
        printf >&2 'ax: Need an expression\n'
        exit 2
        ;;
esac

# Form program
prog=$(printf '
    BEGIN {
        printf "%s\\n", %s
    }
' "$form" "$expr")

# Run program
awk "$prog"