#!/bin/bash # -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8 if [ "$#" -eq 1 -a "$1" == --nutools-makelinks ]; then # créer les liens scriptname="$(basename "$0")" for alias in awkrun awkfsv2csv awkcsv mergecsv sortcsv; do ln -s "$scriptname" "$alias" done exit 0 fi source "$(dirname "$0")/ulib/ulib" && urequire DEFAULTS awk || exit 1 if [ "$scriptname" == "awkcsv" ]; then [ $# -eq 1 -a "$1" == --help ] && exit_with uecho "$scriptname: wrapper autour de awk pour traiter des fichier csv note: ce script ne tient pas compte de la locale: il travaille avec LANG=C USAGE $scriptname [-b before] -e script [-a after] [headers...] $__AWKCSV_HELP" cawkcsv "$@" 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 note: ce script ne tient pas compte de la locale: il travaille avec LANG=C USAGE $scriptname [header:sizes...] $__AWKFSV2CSV_HELP" cawkfsv2csv "$@" elif [ "$scriptname" == "mergecsv" ]; then [ $# -eq 1 -a "$1" == --help ] && exit_with uecho "$scriptname: fusionner deux fichiers csv sur un champ commun note: ce script ne tient pas compte de la locale: il travaille avec LANG=C USAGE $scriptname [options] left right -k field $__MERGECSV_HELP" cmergecsv "$@" elif [ "$scriptname" == "sortcsv" ]; then [ $# -eq 1 -a "$1" == --help ] && exit_with uecho "$scriptname: trier un fichier csv sur un champ note: ce script ne tient pas compte de la locale: il travaille avec LANG=C USAGE $scriptname [options] input -k field $__SORTCSV_HELP" csortcsv "$@" else [ $# -eq 1 -a "$1" == --help ] && exit_with uecho "$scriptname: wrapper autour de awk rajoutant des fonctions supplémentaires 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" cawkrun -f "$@" fi