dumpcsv: ajout de l'option -b

This commit is contained in:
Jephte CLAIN 2016-02-29 23:16:35 +04:00
parent 939b5add30
commit 4808fa027d
1 changed files with 23 additions and 10 deletions

View File

@ -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
}
}'
}