#!/bin/bash

# Ajoute une colonne spécifiée (de nombres) dans le fichier cible.

ARGS=2
E_MAUVAISARGS=65

if [ $# -ne "$ARGS" ] # Vérifie le bon nombre d'arguments sur la ligne de
	              # de commandes.
then
   echo "Usage : `basename $0` nomfichier numéro_colonne"
   exit $E_MAUVAISARGS
fi

nomfichier=$1
numero_colonne=$2

# Passer des variables shell à la partie awk du script demande un peu d'astuces.
#  Une méthode serait de placer des guillemets forts sur la variable du script
#+ Bash à l'intérieur du script awk.
#     $'$BASH_SCRIPT_VAR'
#      ^                ^
# C'est fait dans le script awk embarqué ci-dessous.
# Voir la documentation awk pour plus de détails.

# Un script multi-ligne awk est appelé par awk : ' ..... '


# Début du script awk.
# -----------------------------
awk '

{ total += $'"${numero_colonne}"'
}
END {
     print total
}     

' "$nomfichier"
# -----------------------------
# Fin du script awk.


#   Il pourrait ne pas être sûr de passer des variables shells à un script awk
#+  embarqué, donc Stephane Chazelas propose l'alternative suivante :
#   ---------------------------------------
#   awk -v numero_colonne="$numero_colonne" '
#   { total += $numero_colonne
#   }
#   END {
#       print total
#   }' "$nomfichier"
#   ---------------------------------------


exit 0
