diff --git a/libraries/STRlib.sh b/libraries/STRlib.sh new file mode 100644 index 0000000..168b8b8 --- /dev/null +++ b/libraries/STRlib.sh @@ -0,0 +1,101 @@ +#! /bin/bash + +######################################################################################################################### +######################################################################################################################### +################### ################### +################### title: String library ################### +################### ################### +################### description: Library of functions for string manipulations ################### +################### ################### +################### version: 0.2.2 ################### +################### notes: . ################### +################### bash version: tested on GNU bash, version 4.2.53 ################### +################### ################### +################### autor: gamorosino ################### +################### email: g.amorosino@gmail.com ################### +################### ################### +######################################################################################################################### +######################################################################################################################### +################### ################### +################### update: added str_padding ################### +################### ################### +######################################################################################################################### +######################################################################################################################### + + + + +str_index() { + + ############# ############# ############# ############# ############# ############# + ############ Trova il primo indice di una sottostringa in una stringa ########### + ############# ############# ############# ############# ############# ############# + + if [ $# -lt 2 ]; then # usage dello script + echo $0: "usage: str_index " + return 1; + fi + + x="${1%%$2*}"; + [[ $x = $1 ]] && echo -1 || echo ${#x}; + }; + + +str_indices() { + + ############# ############# ############# ############# ############# ############# + ############ Restituisce gli indice di una carattere in una stringa ########### + ############# ############# ############# ############# ############# ############# + + if [ $# -lt 2 ]; then # usage dello script + echo $0: "usage: str_index []" + return 1; + fi + + local stringa=$1; + local target=$2 + local sep=$3 + local N=${#stringa} + local conta=0 + local last_res="" + local results="" + [ -z $sep ] && { sep=","; } + [ "${sep}" == "space" ] && { sep=" "; } + for ((i=0;i<=N;i++)) do + [ "${target}" == "${stringa:$i:1}" ] && \ + { conta=$(( $conta + 1 ));results=${last_res}${sep}$i;last_res=$results; } + done + echo "${results:1:${#results}}" + }; +str_strip () { + + ############# ############# ############# ############# ############# ############# + ############ Remove a char or sapce from a string ########### + ############# ############# ############# ############# ############# ############# + + local char=$2 + [ -z "${char}" ] && { char="[:space:]";} + local out=$(echo -e "$1" | tr -d "${char}") + echo $out + } + + +str_padding () { + + ############# ############# ############# ############# ############# ############# + ############ Zero padding a string ########### + ############# ############# ############# ############# ############# ############# + + if [ $# -lt 2 ]; then # usage dello script + echo $0: "usage: str_padding " + + return 1; + fi + + + local stringa=$1; + local len=$2 + + local ostring=$( printf "%0${len}d" $stringa ) + echo $ostring + }