27 lines
662 B
Bash
Executable File
27 lines
662 B
Bash
Executable File
#!/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 }"
|