BetaHache

2008/05/29

Funciones substr, trim, length en bash shell

Filed under: Linux — Antonio @ 02:30

Estuve haciendo y buscando algunas funciones típicas como substr(), trim(), rtrim(), ltrim(), en la bash shell de linux y he decidido compartirlas con la comunidad.

# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# Descripción:
#       Hace un substring de una cadena
# Parámetros de entrada:
#       valor: texto a recortar
#       posición: posición donde empezar (primero=0)
#       longitud: numero de caracteres desde posición
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #

function SUBSTR
{
Parm1=$1
Parm2=$2
Parm3=$3
echo "${Parm1:Parm2:Parm3}"
}

# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# Descripción:
#       TRIM: Recorta espacios por ambos lados
#       RTIRM: Recorta espacios por la derecha
#       LTIRM: Recorta espacios por la izquierda
# Parámetros de entrada:
#       valor: texto
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #

function TRIM
{
Parm1="$1"
Parm1=$(LTRIM "$Parm1")
Parm1=$(RTRIM "$Parm1")
echo "$Parm1"
}

function RTRIM
{
Parm1="$1"
conta=${#Parm1}
(( conta -= 1 ))
while [[ $conta -gt -1 ]];do
  Caracter=${Parm1:conta:1}
  if [[ ! $Caracter == ' ' ]]
  then
    (( conta += 1 ))
    break
  fi
  (( conta -= 1 ))
done
echo "${Parm1:0:conta}"
}

function LTRIM
{
Parm1="$1"
conta=0
while [[ $conta -lt ${#Parm1} ]];do
  Caracter=${Parm1:conta:1}
  if [[ ! $Caracter == ' ' ]]
  then
    break
  fi
  (( conta += 1 ))
done
echo "${Parm1:conta}"
}

# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# Descripción:
#       Longitud del valor pasado
# Parámetros de entrada:
#       valor: texto
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
function LENGTH
{
Parm1="$1"
echo ${#Parm1}
}

No hay comentarios

Aún no hay comentarios.

RSS feed para los comentarios de esta entrada. TrackBack URL

Lo siento, el formulario de comentarios está cerrado en este momento.

Powered by WordPress