167 lines
4.8 KiB
Markdown
167 lines
4.8 KiB
Markdown
# ulib/base.string
|
|
|
|
## `straddp`
|
|
~~~
|
|
ajouter le préfixe $1 à $2..*
|
|
~~~
|
|
## `strdelp`
|
|
~~~
|
|
enlever le préfixe $1 à $2..*
|
|
~~~
|
|
## `strdelp2`
|
|
~~~
|
|
enlever le préfixe $1 le plus long à $2..*
|
|
~~~
|
|
## `stradds`
|
|
~~~
|
|
ajouter le suffixe $1 à $2..*
|
|
~~~
|
|
## `strdels`
|
|
~~~
|
|
enlever le suffixe $1 à $2..*
|
|
~~~
|
|
## `strdels2`
|
|
~~~
|
|
enlever le suffixe le plus long $1 à $2..*
|
|
~~~
|
|
## `strlower`
|
|
~~~
|
|
afficher en minuscule la valeur $*
|
|
~~~
|
|
## `strlower1`
|
|
~~~
|
|
afficher la valeur $* après avoir converti la première lettre en minuscule
|
|
~~~
|
|
## `strlowers`
|
|
~~~
|
|
afficher les valeurs $1..* après avoir converti leur première lettre en
|
|
minuscule
|
|
~~~
|
|
## `strupper`
|
|
~~~
|
|
afficher en majuscule la valeur $*
|
|
~~~
|
|
## `strupper1`
|
|
~~~
|
|
afficher la valeur $* après avoir converti la première lettre en majuscule
|
|
~~~
|
|
## `struppers`
|
|
~~~
|
|
afficher les valeurs $1..* après avoir converti leur première lettre en
|
|
majuscule
|
|
~~~
|
|
## `strmid`
|
|
~~~
|
|
Afficher la plage $1 de la valeur $2..*. La plage peut être d'une des formes
|
|
'start', '[start]:length'. Si start est négatif, le compte est effectué à
|
|
partir de la fin de la chaine. Si length est négatif, il est rajouté à la
|
|
longueur de la chaine à partir de start
|
|
~~~
|
|
## `strrepl`
|
|
~~~
|
|
Remplacer dans la valeur $3..* le motif $1 par la chaine $2. $1 peut commencer
|
|
par l'un des caractères /, #, % pour indiquer le type de recherche
|
|
~~~
|
|
## `strops`
|
|
~~~
|
|
Appliquer à une chaine de caractères une suite de traitements, e.g:
|
|
'strops var deref +suffix' est équivalent à 'echo "${var}suffix"'
|
|
En commençant avec la valeur initiale $1, les arguments $2..* sont des
|
|
opérations à appliquer dans l'ordre.
|
|
Les opérations suivantes considèrent que la valeur courante est un nom de
|
|
variable:
|
|
:- := :? :+ deref dcount
|
|
Toutes les autres opérations travaillent directement avec la valeur
|
|
courante. Les opérations suivantes appliquent une transformation:
|
|
# % / : ^ , +# -# +% -% + - mid repl
|
|
Les opérations suivantes font un test sur la valeur et retournent
|
|
immédiatement:
|
|
= == != < > -eq -ne -lt -le -gt -ge -n -z
|
|
La syntaxe des opérateurs standards de bash est reprise autant que possible,
|
|
i.e si on a l'habitude d'écrire ${varOP} en bash, alors la syntaxe à utiliser
|
|
à priori est 'strops var OP' ou 'strop var deref OP' suivant les opérateurs.
|
|
Autres opérateurs:
|
|
deref indirection
|
|
dcount nombre d'éléments du tableau
|
|
+#STR ajouter un préfixe
|
|
-#STR supprimer un préfixe
|
|
+%STR ou +STR ajouter un suffixe
|
|
-%STR ou -STR supprimer un suffixe
|
|
mid RANGE traiter la chaine avec strmid()
|
|
repl FROM TO traiter la chaine avec strrepl()
|
|
~~~
|
|
## `first_char`
|
|
~~~
|
|
retourner le premier caractère de la chaine $*
|
|
~~~
|
|
## `last_char`
|
|
~~~
|
|
retourner le dernier caractère de la chaine $*
|
|
~~~
|
|
## `first_chars`
|
|
~~~
|
|
retourner tous les caractères de la chaine $*, excepté le dernier
|
|
~~~
|
|
## `last_chars`
|
|
~~~
|
|
retourner tous les caractères de la chaine $*, excepté le premier
|
|
~~~
|
|
## `first_char_is`
|
|
~~~
|
|
Tester si le premier caractère de la chaine $1 est $2
|
|
~~~
|
|
## `last_char_is`
|
|
~~~
|
|
Tester si le dernier caractère de la chaine $1 est $2
|
|
~~~
|
|
## `beginswith`
|
|
~~~
|
|
Tester si la chaine $1 commence par le wildcard $2
|
|
~~~
|
|
## `endswith`
|
|
~~~
|
|
Tester si la chaine $1 se termine par le wildcard $2
|
|
~~~
|
|
## `strsplitf`
|
|
~~~
|
|
Cette fonction doit être appelée avec N arguments (avec N>1). Elle analyse et
|
|
découpe l'argument $N comme avec une ligne de commande du shell. Ensuite, elle
|
|
appelle la fonction $1 avec les arguments de $2 à ${N-1}, suivi des arguments
|
|
obtenus lors de l'analyse de l'argument $N. Par exemple, la commande suivante:
|
|
strsplitf cmd arg1 "long arg2" "arg3 'long arg4'"
|
|
est équivalente à:
|
|
cmd arg1 "long arg2" arg3 "long arg4"
|
|
Retourner le code 127 si la fonction à appeler n'est pas spécifiée. Retourner
|
|
le code 126 si une erreur s'est produite lors de l'analyse de l'argument $N
|
|
~~~
|
|
## `strecho`
|
|
## `strqvals`
|
|
~~~
|
|
Afficher chaque argument à part avec des quotes. A chainer avec strsplitf()
|
|
~~~
|
|
## `strqlines`
|
|
~~~
|
|
Afficher chaque ligne des fichiers spécifiés comme un argument. A chainer avec
|
|
strsplitf()
|
|
~~~
|
|
## `strqarray`
|
|
~~~
|
|
Afficher chaque valeur des tableaux $@ comme un argument. A chainer avec
|
|
strsplitf()
|
|
~~~
|
|
## `evals`
|
|
~~~
|
|
Enchainer des traitements sur des chaines de caractères, comme pour la fonction
|
|
evalx(). Il y a cependant quelques différences:
|
|
- Seules certains fonctions spécifiques peuvent être utilisées: elles sont
|
|
reconnaissables à leur préfixe 'str'. En effet, lors de l'utilisation d'une
|
|
commande par evals(), le préfixe 'str' est systématiquement ajouté.
|
|
- La fonction strsplitf() est traitée de façon particulière pour lancer une
|
|
commande avec le préfixe 'str'
|
|
Ainsi, la commande suivante:
|
|
evals cmd1 // splitf cmd2
|
|
est équivalente à la commande:
|
|
strplitf strcmd2 "$(strcmd1)"
|
|
~~~
|
|
|
|
-*- coding: utf-8 mode: markdown -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8:noeol:binary |