27 lines
662 B
Plaintext
27 lines
662 B
Plaintext
|
#!/bin/bash
|
||
|
this="${0##*/}"
|
||
|
USAGE="\
|
||
|
usage: $this [<awk_args>] <field_no>
|
||
|
Ex: getent passwd | grep andy | $this -F: 5
|
||
|
Ex: echo \"A B\" | $this 2
|
||
|
"
|
||
|
err(){ echo -e "$USAGE" >&2; exit 1; }
|
||
|
|
||
|
[[ $# -eq 0 ]] && err
|
||
|
# bail if the *last* argument isn't a number (source:
|
||
|
# http://stackoverflow.com/a/808740)
|
||
|
last=${@:(-1)}
|
||
|
if ! [ $last -eq $last ] &>/dev/null; then
|
||
|
echo "_awk! Last argument (awk field) must be numeric." >&2
|
||
|
err
|
||
|
fi
|
||
|
|
||
|
if [ $# -gt 1 ]; then
|
||
|
# Source:
|
||
|
# http://www.cyberciti.biz/faq/linux-unix-bsd-apple-osx-bash-get-last-argument/
|
||
|
rest=${@:1:$(( $# - 1 ))}
|
||
|
else
|
||
|
rest='' # just to be sure
|
||
|
fi
|
||
|
awk $rest "{ print \$$last }"
|