nouvelles fonctions str*
This commit is contained in:
parent
9ffb5af972
commit
f0edff697b
|
@ -1 +1 @@
|
|||
003000002
|
||||
003001000
|
||||
|
|
|
@ -206,7 +206,7 @@ function first_char() {
|
|||
}
|
||||
function last_char() {
|
||||
# retourner le dernier caractère de la chaine $1
|
||||
rawecho "${1:$((-1)):1}"
|
||||
rawecho "${1: -1:1}"
|
||||
}
|
||||
function first_chars() {
|
||||
# retourner tous les caractères de la chaine $1, excepté le dernier
|
||||
|
|
|
@ -7,7 +7,31 @@ urequire base.string
|
|||
if [ -n "$BASH_VERSINFO" -a "${BASH_VERSINFO[0]}" -lt 4 ]; then
|
||||
if uprovided base.string; then
|
||||
function strlower() { tr A-Z a-z <<<"$*"; }
|
||||
function strlower1() {
|
||||
local str="$*"
|
||||
local h="${str:0:1}" r="${str:1}"
|
||||
echo "$(tr A-Z a-z <<<"$h")$r"
|
||||
}
|
||||
function strlowers() {
|
||||
local -a vs; local v
|
||||
for v in "$@"; do
|
||||
vs=("${vs[@]}" "$(strlower1 "$v")")
|
||||
done
|
||||
echo "${vs[*]}"
|
||||
}
|
||||
function strupper() { tr a-z A-Z <<<"$*"; }
|
||||
function strupper1() {
|
||||
local str="$*"
|
||||
local h="${str:0:1}" r="${str:1}"
|
||||
echo "$(tr a-z A-Z <<<"$h")$r"
|
||||
}
|
||||
function struppers() {
|
||||
local -a vs; local v
|
||||
for v in "$@"; do
|
||||
vs=("${vs[@]}" "$(strupper1 "$v")")
|
||||
done
|
||||
echo "${vs[*]}"
|
||||
}
|
||||
function is_yes() {
|
||||
case "$1" in
|
||||
o|oui|y|yes|v|vrai|t|true|on) return 0;;
|
||||
|
|
|
@ -1,16 +1,119 @@
|
|||
##@cooked comments # -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
|
||||
## Fonctions de base: gestion des valeurs scalaires
|
||||
##@cooked nocomments
|
||||
# Note: contient du code spécifique à bash 4. Le module base.compat réimplémente
|
||||
# les fonctions concernées pour les rendre compatible avec bash >= 2.x
|
||||
uprovide base.string
|
||||
urequire base.core
|
||||
|
||||
function straddp() {
|
||||
# ajouter le préfixe $1 à $2*
|
||||
local p="$1"; shift
|
||||
echo "$p$*"
|
||||
}
|
||||
function strdelp() {
|
||||
# enlever le préfixe $1 à $2*
|
||||
local p="$1"; shift
|
||||
local str="$*"
|
||||
echo "${str#$p}"
|
||||
}
|
||||
function strdelp2() {
|
||||
# enlever le préfixe $1 le plus long à $2*
|
||||
local p="$1"; shift
|
||||
local str="$*"
|
||||
echo "${str##$p}"
|
||||
}
|
||||
function stradds() {
|
||||
# ajouter le suffixe $1 à $2*
|
||||
local s="$1"; shift
|
||||
echo "$*$s"
|
||||
}
|
||||
function strdels() {
|
||||
# enlever le suffixe $1 à $2*
|
||||
local s="$1"; shift
|
||||
local str="$*"
|
||||
echo "${str%$s}"
|
||||
}
|
||||
function strdels2() {
|
||||
# enlever le suffixe le plus long $1 à $2*
|
||||
local s="$1"; shift
|
||||
local str="$*"
|
||||
echo "${str%%$s}"
|
||||
}
|
||||
function strlower() {
|
||||
# afficher en minuscule la valeur $1..*
|
||||
echo ${*,,}
|
||||
# afficher en minuscule la valeur $*
|
||||
local str="$*"
|
||||
echo "${str,,}"
|
||||
}
|
||||
function strlower1() {
|
||||
# afficher la valeur $* après avoir converti la première lettre en minuscule
|
||||
local str="$*"
|
||||
echo "${str,}"
|
||||
}
|
||||
function strlowers() {
|
||||
# afficher les valeurs $1..* après avoir converti leur première lettre en
|
||||
# minuscule
|
||||
local str="$*"
|
||||
echo "${*,}"
|
||||
}
|
||||
function strupper() {
|
||||
# afficher en majuscule la valeur $1..*
|
||||
echo ${*^^}
|
||||
# afficher en majuscule la valeur $*
|
||||
local str="$*"
|
||||
echo "${str^^}"
|
||||
}
|
||||
function strupper1() {
|
||||
# afficher la valeur $* après avoir converti la première lettre en majuscule
|
||||
local str="$*"
|
||||
echo "${str^}"
|
||||
}
|
||||
function struppers() {
|
||||
# afficher les valeurs $1..* après avoir converti leur première lettre en
|
||||
# majuscule
|
||||
echo "${*^}"
|
||||
}
|
||||
function 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
|
||||
local range="$1"; shift
|
||||
local str="$*"
|
||||
if [[ "$range" == *:-* ]]; then
|
||||
local max=${#str}
|
||||
[ $max -eq 0 ] && return
|
||||
local start="${range%%:*}"
|
||||
[ -n "$start" ] || start=0
|
||||
while [ "$start" -lt 0 ]; do
|
||||
start=$(($max$start))
|
||||
done
|
||||
max=$(($max-$start))
|
||||
local length="${range#*:}"
|
||||
while [ "$length" -lt 0 ]; do
|
||||
length=$(($max$length))
|
||||
done
|
||||
range="$start:$length"
|
||||
fi
|
||||
eval 'echo "${str:'" $range"'}"'
|
||||
}
|
||||
function 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
|
||||
local pattern="$1"; shift
|
||||
local repl="$1"; shift
|
||||
local str="$*"
|
||||
local cmd='echo "${str/'
|
||||
if [ "${pattern#/}" != "$pattern" ]; then
|
||||
pattern="${pattern#/}"
|
||||
cmd="$cmd/"
|
||||
elif [ "${pattern#\#}" != "$pattern" ]; then
|
||||
pattern="${pattern#\#}"
|
||||
cmd="$cmd#"
|
||||
elif [ "${pattern#%}" != "$pattern" ]; then
|
||||
pattern="${pattern#%}"
|
||||
cmd="$cmd%"
|
||||
fi
|
||||
cmd="$cmd"'$pattern/$repl}"'
|
||||
eval "$cmd"
|
||||
}
|
||||
function isnum() {
|
||||
# retourner vrai si $1 est une valeur numérique entière (positive ou négative)
|
||||
|
|
Loading…
Reference in New Issue