From 4808fa027d16ef8215a8663395f1ff6333706843 Mon Sep 17 00:00:00 2001 From: Jephte CLAIN Date: Mon, 29 Feb 2016 23:16:35 +0400 Subject: [PATCH] dumpcsv: ajout de l'option -b --- lib/ulib/awk | 33 +++++++++++++++++++++++---------- 1 file changed, 23 insertions(+), 10 deletions(-) diff --git a/lib/ulib/awk b/lib/ulib/awk index 765b5f4..de959a2 100644 --- a/lib/ulib/awk +++ b/lib/ulib/awk @@ -1751,14 +1751,14 @@ function sortcsv() { LANG=C lsortcsv "$@"; } __DUMPCSV_HELP="\ Afficher les champs spécifiés pour traitement par le shell ---skip-lines nblines +-s, -S, --skip-lines nblines Sauter nblines au début du flux --h, --parse-headers +-h, -H, --parse-headers Lire la liste des champs à partir de la première ligne non ignorée du flux. Si cette option est spécifiée (ce qui est le cas par défaut), les champs spécifiés peuvent être les noms effectifs des champs. Sinon, les champs ne peuvent être que numériques. ---numkeys +-N, --numkeys Ne pas analyser la première ligne pour les noms des champs. Les champs spécifiés ne peuvent être que numériques. @@ -1769,13 +1769,22 @@ Afficher les champs spécifiés pour traitement par le shell dump value00 value01... dump value10 value11... C'est la méthode d'affichage par défaut. L'option -n permet de spécifier le - nom de la fonction, qui vaut par défaut 'dump' + nom de la fonction, qui vaut 'dump' par défaut -a, --array Afficher les champs comme les valeurs d'un tableau, e.g: values=(value00 value01...) values=(value10 value11...) - L'option -n permet de spécifier le nom du tableau, qui vaut par défaut - 'values'" + L'option -n permet de spécifier le nom du tableau, qui vaut 'values' par + défaut +-b, --array-function + Afficher les champs comme l'initialisation des valeurs d'un tableau suivi de + l'appel d'une fonction, e.g: + values=(value00 value01...) + dump + values=(value10 value11...) + dump + Le nom du tableau est fixé à 'values'. L'option -n permet de spécifier le + nom de la fonction, qui vaut 'dump' par défaut" : "${__DUMPCSV_DEBUG:=}" function ldumpcsv() { @@ -1783,12 +1792,13 @@ function ldumpcsv() { local skip= parse_headers=1 local name dump=function parse_opts "${PRETTYOPTS[@]}" \ - --skip:,--skip-lines:,--skiplines: skip= \ - -h,--parse-headers parse_headers=1 \ - --numkeys parse_headers= \ + -s:,-S:,--skip:,--skip-lines:,--skiplines: skip= \ + -h,-H,--parse-headers parse_headers=1 \ + -N,--numkeys parse_headers= \ -n:,--name: name= \ -f,--function dump=function \ -a,--array dump=array \ + -b,--array-function dump=array-function \ @ args -- "$@" && set -- "${args[@]}" || die "$args" args=(${skip:+--skip-lines "$skip"}) @@ -1798,7 +1808,7 @@ function ldumpcsv() { if [ -z "$name" ]; then case "$dump" in - function) name=dump;; + function|array-function) name=dump;; array) name=values;; esac fi @@ -1817,6 +1827,9 @@ function ldumpcsv() { print qarr(values, name) } else if (dump == "array") { print name "=(" qarr(values) ")" + } else if (dump == "array-function") { + print "values=(" qarr(values) ")" + print name } }' }