Skip to content

Commit

Permalink
added string lib
Browse files Browse the repository at this point in the history
  • Loading branch information
gamorosino committed Nov 21, 2022
1 parent 307053e commit 60cb4b8
Showing 1 changed file with 101 additions and 0 deletions.
101 changes: 101 additions & 0 deletions libraries/STRlib.sh
Original file line number Diff line number Diff line change
@@ -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: [email protected] ###################
################### ###################
#########################################################################################################################
#########################################################################################################################
################### ###################
################### 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 <string> <substrin> "
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 <string> <char> [<separator>]"
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 <string> <len>"

return 1;
fi


local stringa=$1;
local len=$2

local ostring=$( printf "%0${len}d" $stringa )
echo $ostring
}

0 comments on commit 60cb4b8

Please sign in to comment.