Bash Column totaler
Bash
Download (.zip)
#!/bin/bash
# Adds up a specified column (of numbers) in the target file.
ARGS=2 E_WRONGARGS=65
if [ $# -ne "$ARGS" ] # Check for proper no. of command line args. then echo "Usage: `basename $0` filename column-number" exit $E_WRONGARGS fi
filename=$1 column_number=$2
# Passing shell variables to the awk part of the script is a bit tricky. # See the awk documentation for more details.
# A multi-line awk script is invoked by awk ' ..... '
# Begin awk script. # ----------------------------- awk '
{ total += $'"${column_number}"' } END { print total }
' "$filename" # ----------------------------- # End awk script.
# It may not be safe to pass shell variables to an embedded awk script, # so Stephane Chazelas proposes the following alternative: # --------------------------------------- # awk -v column_number="$column_number" ' # { total += $column_number # } # END { # print total # }' "$filename" # ---------------------------------------
exit 0
|