Conversion y capitalización de cadenas de texto usando awk [BashScripting]

No Gravatar

Recientemente he necesitado realizar conversiones de mayúsculas a minúsculas y viceversa, e incluso convertir a mayúsculas la inicial de una palabra dentro de un texto. Para ello he creado este simple script que realiza las funciones necesarias dando a elegir lo que necesitemos en un sencillo menú:

#!/bin/bash

fecha=`date +-%d-%m-%y--%H:%M`

function comprueba(){
if [ -z "$entrada" ]; then
echo "Introduce una cadena a convertir..."
read chain
else
echo "La entrada a convertir es:"
echo $entrada
chain=$entrada
fi
}

function inimay(){
comprueba
chain2=`echo ${chain:0:1} | awk '{print toupper($0)}'`
salida=$chain2${chain:1}
imprime
}

function tomin(){
comprueba
salida=`echo ${chain:0} | awk '{print tolower($0)}'`
imprime
}

function tomay(){
comprueba
salida=`echo ${chain:0} | awk '{print toupper($0)}'`
imprime
}

function toinimay(){
comprueba
chain2=`echo ${chain:0} | awk '{print tolower($0)}'`
chain3=`echo ${chain2:0:1} | awk '{print toupper($0)}'`
salida=$chain3${chain2:1}
imprime
}

function imprime(){
echo "Salida convertida:"
echo $salida
escribe
}

function escribe(){
echo "Quieres volcar la salida a un fichero? (s/N)"
read resp
case $resp in
S|s)
echo "---------"$fecha"---------------------" >> salidatexto.txt
echo $salida >> salidatexto.txt
echo "----------------------------------------------" >> salidatexto.txt
echo "Salida volcada al fichero salidatexto.txt"
;;
N|n)
echo "Saliendo..."
exit
;;
*)
echo "Saliendo..."
exit
;;
esac
}

function elige(){
echo "Elija una opción entre las siguientes:"
echo "a) Capitalizar la inicial de una cadena en minúsculas."
echo "   ej. [palabra > Palabra]"
echo "b) Convertir una cadena en Mayúsculas a minúsculas."
echo "   ej. [PALABRA > palabra]"
echo "c) Convertir una cadena en minúsculas a Mayúsculas."
echo "   ej. [palabra > PALABRA]"
echo "d) Opcion b + a"
echo "   ej. [PALABRA > Palabra]"
read -p "Su opción: " opcion
case $opcion in
A|a)
inimay
;;
B|b)
tomin
;;
C|c)
tomay
;;
D|d)
toinimay
;;
*)
echo "Por favor, elija una de las opciones descritas anteriormente."
;;
esac
}

echo "Script de conversión de cadenas de texto."
entrada=$*
elige

Con este sencillo script podremos realizar cambios de capitalización entre cadenas utilizando awk de forma muy sencilla.

Una respuesta a “Conversion y capitalización de cadenas de texto usando awk [BashScripting]”

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*

*

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.