#!/bin/bash # -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8 ALIASES=(awkrun awkfsv2csv awkcsv mergecsv sortcsv) if [ "$#" -eq 1 -a "$1" == --nutools-makelinks ]; then # créer les liens scriptname="$(basename "$0")" for alias in "${ALIASES[@]}"; do ln -s "$scriptname" "$alias" ln -s "$scriptname" "l$alias" done exit 0 fi source "$(dirname "$0")/ulib/ulib" && urequire DEFAULTS awk || exit 1 # si on lance le script uawk, donner la possibilité de choisir l'outil if [ "$scriptname" == uawk ] && array_contains ALIASES "${1#l}"; then scriptname="$1" shift fi # choix de la version des scripts: tient compte de la locale ou non if [ "${scriptname#l}" != "$scriptname" ]; then prefix=l Clang= else prefix=c Clang=1 fi if [ "$scriptname" == "awkcsv" ]; then [ $# -eq 1 -a "$1" == --help ] && exit_with uecho "$scriptname: wrapper autour de awk pour traiter des fichier csv ${Clang:+note: ce script ne tient pas compte de la locale: il travaille avec LANG=C } USAGE $scriptname [-b before] -e script [-a after] -- [headers...] [-- inputfiles...] $__AWKCSV_HELP" "${prefix}awkcsv" "$@" elif [ "$scriptname" == "awkfsv2csv" ]; then [ $# -eq 1 -a "$1" == --help ] && exit_with uecho "$scriptname: wrapper autour de awk pour transformer un fichier à colonnes fixes en fichier csv ${Clang:+note: ce script ne tient pas compte de la locale: il travaille avec LANG=C } USAGE $scriptname [options] -- [header:sizes...] [-- inputfiles...] $__AWKFSV2CSV_HELP" "${prefix}awkfsv2csv" "$@" elif [ "$scriptname" == "mergecsv" ]; then [ $# -eq 1 -a "$1" == --help ] && exit_with uecho "$scriptname: fusionner deux fichiers csv sur un champ commun ${Clang:+note: ce script ne tient pas compte de la locale: il travaille avec LANG=C } USAGE $scriptname [options] left right -k field $__MERGECSV_HELP" "${prefix}mergecsv" "$@" elif [ "$scriptname" == "sortcsv" ]; then [ $# -eq 1 -a "$1" == --help ] && exit_with uecho "$scriptname: trier un fichier csv sur un champ ${Clang:+note: ce script ne tient pas compte de la locale: il travaille avec LANG=C } USAGE $scriptname [options] input -k field $__SORTCSV_HELP" "${prefix}sortcsv" "$@" else [ $# -eq 1 -a "$1" == --help ] && exit_with uecho "$scriptname: wrapper autour de awk rajoutant des fonctions supplémentaires ${Clang:+note: ce script ne tient pas compte de la locale: il travaille avec LANG=C } USAGE $scriptname [var=value...] script [-- inputfiles...] Lancer awk avec un script préparé de la manière spécifiée ci dessous. $__AWKDEF_HELP" "${prefix}awkrun" -f "$@" fi