mirror of https://github.com/tLDP/LDP
39 lines
935 B
Bash
39 lines
935 B
Bash
#!/bin/bash
|
|
|
|
# Yet another version of the "column totaler" script (col-totaler.sh)
|
|
#+ that adds up a specified column (of numbers) in the target file.
|
|
# This uses the environment to pass a script variable to 'awk' . . .
|
|
#+ and places the awk script in a variable.
|
|
|
|
|
|
ARGS=2
|
|
E_WRONGARGS=85
|
|
|
|
if [ $# -ne "$ARGS" ] # Check for proper number of command-line args.
|
|
then
|
|
echo "Usage: `basename $0` filename column-number"
|
|
exit $E_WRONGARGS
|
|
fi
|
|
|
|
filename=$1
|
|
column_number=$2
|
|
|
|
#===== Same as original script, up to this point =====#
|
|
|
|
export column_number
|
|
# Export column number to environment, so it's available for retrieval.
|
|
|
|
|
|
# -----------------------------------------------
|
|
awkscript='{ total += $ENVIRON["column_number"] }
|
|
END { print total }'
|
|
# Yes, a variable can hold an awk script.
|
|
# -----------------------------------------------
|
|
|
|
# Now, run the awk script.
|
|
awk "$awkscript" "$filename"
|
|
|
|
# Thanks, Stephane Chazelas.
|
|
|
|
exit 0
|