support de xempty explicite, et de la possibilité de désactiver ce traitement

This commit is contained in:
Jephté Clain 2015-04-16 13:53:09 +04:00
parent 75f21b5a52
commit 57dac04799
1 changed files with 22 additions and 29 deletions

View File

@ -1033,22 +1033,25 @@ dec, decode [ATTRS...]
s'ils sont encodés en base64) s'ils sont encodés en base64)
enc, encode [ATTRS...] enc, encode [ATTRS...]
Encoder en base64 les valeurs des attributs mentionnés. Encoder en base64 les valeurs des attributs mentionnés.
k, keepattr ATTRS... xe, xempty, excludeempty
Garder uniquement les lignes des attributs mentionnés. Ensuite, supprimer Supprimer les objets sans attributs, qui ont uniquement une ligne dn:
les objets ayant uniquement la ligne dn: (en d'autres termes, keepattr sans k, keepattr [--no-xempty] ATTRS...
argument supprime *tout* le flux) Garder uniquement les attributs mentionnés, puis supprimer les objets sans
kv, keepval ATTR PATTERNS... attributs avec xempty, sauf si l'option --no-xempty est spécifiée (en
d'autres termes, keepattr sans argument supprime *tout* le flux)
kv, keepval [--no-xempty] ATTR PATTERNS...
Pour l'attribut attr, garder uniquement les lignes pour lesquelles les Pour l'attribut attr, garder uniquement les lignes pour lesquelles les
valeurs correspondent aux expressions régulières. Les autres attributs ne valeurs correspondent aux expressions régulières. Les autres attributs ne
sont pas modifiés. Ensuite, supprimer les objets ayant uniquement la ligne sont pas modifiés. Ensuite, supprimer les objets sans attributs avec xempty,
dn: sauf si l'option --no-xempty est spécifiée
x, excludeattr ATTRS... x, excludeattr [--no-xempty] ATTRS...
Supprimer les lignes des attributs mentionnés. Ensuite, supprimer les objets Supprimer les lignes des attributs mentionnés. Ensuite, supprimer les objets
ayant uniquement la ligne dn: sans attributs avec xempty, sauf si l'option --no-xempty est spécifiée
xv, excludeval ATTR PATTERNS... xv, excludeval [--no-xempty] ATTR PATTERNS...
Pour l'attribut attr, supprimer les lignes pour lesquelles les valeurs Pour l'attribut attr, supprimer les lignes pour lesquelles les valeurs
correspondent aux expressions régulières. Les autres attributs ne sont pas correspondent aux expressions régulières. Les autres attributs ne sont pas
modifiés. Ensuite, supprimer les objets ayant uniquement la ligne dn: modifiés. Ensuite, supprimer les objets sans attributs avec xempty, sauf si
l'option --no-xempty est spécifiée.
kve, keepvalentry ATTR PATTERNS... kve, keepvalentry ATTR PATTERNS...
Pour l'attribut attr, vérifier si *au moins une* valeur correspond à l'une Pour l'attribut attr, vérifier si *au moins une* valeur correspond à l'une
des expressions régulières. Si c'est le cas, garder toute l'entrée, sinon des expressions régulières. Si c'est le cas, garder toute l'entrée, sinon
@ -1301,23 +1304,24 @@ function get_transform_cmd() {
;; ;;
dec|decode) cmdparts=(tl_decode "$(def_match_attr "$@")");; dec|decode) cmdparts=(tl_decode "$(def_match_attr "$@")");;
enc|encode) cmdparts=(tl_encode "$(def_match_attr "$@")");; enc|encode) cmdparts=(tl_encode "$(def_match_attr "$@")");;
xe|xempty|excludeempty) cmdparts=(ensure_complete_objects);;
k|keep|keepattr) k|keep|keepattr)
[ "$1" == --no-xempty ] && shift || xempty=1
cmdparts=(tl_keepattr "$(def_match_attr dn "$@")") cmdparts=(tl_keepattr "$(def_match_attr dn "$@")")
xempty=1
;; ;;
K|kv|keepval) K|kv|keepval)
[ "$1" == --no-xempty ] && shift || xempty=1
local match_attr="$(def_match_attr "$1")"; shift local match_attr="$(def_match_attr "$1")"; shift
cmdparts=(tl_keepval "$match_attr" "$(def_match_value "$@")") cmdparts=(tl_keepval "$match_attr" "$(def_match_value "$@")")
xempty=1
;; ;;
x|exclude|excludeattr) x|exclude|excludeattr)
[ "$1" == --no-xempty ] && shift || xempty=1
cmdparts=(tl_excludeattr "$(def_match_attr "$@")") cmdparts=(tl_excludeattr "$(def_match_attr "$@")")
xempty=1
;; ;;
dv|delval|X|xv|excludeval) dv|delval|X|xv|excludeval)
[ "$1" == --no-xempty ] && shift || xempty=1
local match_attr="$(def_match_attr "$1")"; shift local match_attr="$(def_match_attr "$1")"; shift
cmdparts=(tl_excludeval "$match_attr" "$(def_match_value "$@")") cmdparts=(tl_excludeval "$match_attr" "$(def_match_value "$@")")
xempty=1
;; ;;
xve|excludevalentry) xve|excludevalentry)
local match_attr="$(def_match_attr "$1")"; shift local match_attr="$(def_match_attr "$1")"; shift
@ -1332,21 +1336,10 @@ function get_transform_cmd() {
sv|setval|rv|replval) sv|setval|rv|replval)
local match_attr="$(def_match_attr "$1")"; shift local match_attr="$(def_match_attr "$1")"; shift
cmdparts=(tl_replval "$match_attr" "$@") cmdparts=(tl_replval "$match_attr" "$@")
xempty=1
;; ;;
av|addval) av|addval) cmdparts=(tl_addval "$@");;
cmdparts=(tl_addval "$@") fv|defval) cmdparts=(tl_defval "$@");;
xempty=1 ev|ensureval) cmdparts=(tl_ensureval "$@");;
;;
fv|defval)
cmdparts=(tl_defval "$@")
xempty=1
;;
ev|ensureval)
cmdparts=(tl_ensureval "$@")
xempty=1
;;
xe|xempty|excludeempty) cmdparts=(ensure_complete_objects);;
sed|awk|grep|sort) cmdparts=(LANG=C "$cmd" "$@");; sed|awk|grep|sort) cmdparts=(LANG=C "$cmd" "$@");;
csed|cawk|cgrep|csort) cmdparts=(LANG=C "${cmd#c}" "$@");; csed|cawk|cgrep|csort) cmdparts=(LANG=C "${cmd#c}" "$@");;
lsed|lawk|lgrep|lsort) cmdparts=("${cmd#l}" "$@");; lsed|lawk|lgrep|lsort) cmdparts=("${cmd#l}" "$@");;