LINUX – Comando TR – Ejemplos para aprender el uso.

En el caso que tengamos un texto y queramos transformar la totalidad de a a A lo haremos del siguiente modo:

En el caso que queramos reemplazar todas las vocales de una frase de minúscula a mayúscula lo podemos hacer del siguiente modo:

En el caso que queramos transformar la totalidad de letras mayúsculas a minúsculas lo podemos hacer del siguiente modo:

Si queremos también podemos añadir una línea nueva al fichero geekland.txt que sea igual que la primera pero en minúscula siguiendo el siguiente procedimiento:

Si ejecutamos el siguiente comando:

Vemos que ha ocurrido lo siguiente:

La letra a se reemplaza por la A. La b por la B y a partir de aquí la cef… hasta llegar la z se reemplazarán por la B.

Si queremos evitar este comportamiento podemos usar la opción -t o truncate. Si ejecutamos el mismo comando añadiendo la opción -t:

Vemos que ha ocurrido lo siguiente:

La letra a se reemplaza por la A. La b por la B y a partir de aquí no se reemplazará ninguna otra letra. El comportamiento ahora será de este modo gracias a la opción -t. Por lo tanto la opción -t hace que la longitud del primero de los argumentos introducidos en el comando tr sea igual que la del segundo argumento.

Nota: Con la opción -t el primero de los argumentos introducidos del comando tr tiene que tener una longitud igual o superior al segundo de los argumentos.

Si queremos borrar todas las vocales mayúsculas y minúsculas de una frase y que sean reemplazadas por un espacio en blanco lo haremos mediante la opción tr -d. Un ejemplo de lo que acabo de citar es el siguiente:

Si quisiéramos que las vocales borradas fueran reemplazadas por espacios en blanco deberíamos haber usado el siguiente comando:

Para borrar todo el contenido de una frase excepto las vocales aeiou, tendremos que usar la opción -c. La opción -c o complemento vendría a actuar como lo contrario a la orden que introducimos en el comando. Por lo tanto para borrar todas las letras que no sea vocales de una frase lo haremos del siguiente modo:

Para borra todos los caracteres que no son legibles, se utiliza el siguiente comando :

Nota: Mediante la opción -cd '[:print:]' estamos diciendo que se borre todo carácter que no se imprimible/legíble. Además la opción \n hará que al finalizar la tarea el cursos de la terminal quede ubicado en una nueva línea.

Para borra todo lo que no sea un digito o numero se realizara con el siguiente comando :

Si por lo contrario quieren borrar la totalidad de números que aparecen a la frase tan solo tendrían que eliminar la opción -c complemento y obtendrían el siguiente resultado:

En ocasiones escribimos rápido y es posible que por error escribamos 2 caracteres repetidos de forma consecutiva. Un ejemplo de lo que acabo de citar es el siguiente:

Esto es un ejeeemplo de tr para el blog.

En el ejemplo vemos que a la palabra ejemplo le sobran dos e. Para eliminarlas lo podemos hacer con la opción -s Squeeze del siguiente modo:

Si tuviéramos una frase con exceso de espacios, como por ejemplo la siguiente:

Y quisiéramos eliminar los espacios sobrantes lo haríamos del siguiente modo:

Transformar los espacios en tabulaciones horizontales o verticales con TR

En el ejemplo que propondremos a continuación tenemos 3 palabras separadas por un espacio:

joan carles geekland

Si queremos transformar este espacio por un tabulación lo haremos usando la opción [:space:] y \t del siguiente modo:

La opción \t añade una tabulación horizontal. Si quisiéramos añadir una tabulación vertical lo haríamos con la opción \v del siguiente modo obteniendo un resultado parecido al siguiente:

Generar una nueva línea cada vez que encontremos un determinado carácter delimitador

Si tenemos una frase, que obviamente está compuesta por palabras separadas por espacio, podemos separar cada una de las palabras en una nueva línea usando la siguiente sintaxis:

Obviamente este artículo únicamente detalla algunas de las opciones del comando tr.

Publicado en Unix - Linux | Deja un comentario

Lenguaje programación AWK.

Articulo obtenido desde la siguiente página : «https://learnxinyminutes.com/docs/es-es/awk-es/».

Usando el buscador, puedes obtener más códigos útiles del lenguaje AWK..

AWK es una herramienta estándar en cada sistema UNIX compatible con POSIX. Es como un Perl restringido, perfecto para tareas de procesamiento de texto y otras necesidades de scripting. Tiene una sintaxis similar a C, pero sin puntos y comas, manejo manual de memoria y tipado estático. Puedes llamarlo desde un script de shell o usarlo como un lenguaje stand-alone para scripting.

¿Por qué elegir AWK sobre Perl? Principalmente, porque AWK es parte de UNIX. Siempre puedes contar con él, mientras que el futuro de Perl está en duda. AWK es más fácil de leer que Perl. Para scripts sencillos de procesamiento de texto, particularmente si es para leer archivos línea a línea y dividir por delimitadores, probablemente AWK es la herramienta correcta para el trabajo.

Publicado en Unix - Linux | Deja un comentario

LINUX – Poniendo color a nuestros SCRIPTS.

También existe la posibilidad de darle un toque más visual a aquello que imprimimos por pantalla; eso se logra mediante la inclusión de Etiquetas de color y mediante el mostrado de la cadena mediante el comando echo -e «cadena». Una etiqueta de color siempre tiene que ser almacenada en una variable y tienen que tener la siguiente estructura:

Los colores que se quieren especificar poseen un código númerico en concreto; es decir no se puede especificar un color como Rojo, negro, etc… Se tratan de códigos algo complejos de memorizar, es por ello que os listo a continuación cada color con su correspondiente código:

Queremos mostrar esta cadena con diferentes colores; para ello crearemos cuatro variables llamadas ROJO, CYAN, VERDE y BLANCO y haremos que la palabra vamos se muestre en rojo, las palabras a probar se muestren en cyan, la palabra diferentes se muestre en verde y por último la palabra colores se muestre en blanco.El código para lograr dicho sería el siguiente:

Publicado en Unix - Linux | Deja un comentario

BASH -Script verificar correcta ejecución.-

El siguiente script intenta crear un subdirectorio tmp/project en el directorio actual. En la condición de la sentencia if verificamos si el valor de la variable $? es diferente de 0. Si ese es el caso, imprimimos un mensaje de error y salimos del script con el código de salida 1. La rama else imprime un mensaje exitoso y se ejecuta solo si el valor de $? es 0

Publicado en Unix - Linux | Deja un comentario

BASH – LINUX ver fecha de caducidad de un certificado SSL (Plugin NAGIOS para renovar certificado SSL).-

Para la correcta ejecución debe tener instalado OPENSSL . El SCRIPT solicita 4 argumentos para su ejecución :

1 = Nombre servidor 2=Puerto 3=Días WARNING 4=Días CRITICAL

#!/bin/bash
servidor=$1
puerto=$2
warning=$3
critical=$4
hasta=echo | openssl s_client -connect $servidor.dominio.cl:$puerto 2>/dev/null | openssl x509 -noout -dates | cut -d "=" -f2 | awk 'NR==2{print $0}'
vence=date -d "$hasta" +%Y%m%d
START=date -d $(date +"%Y%m%d") +%s
END=date -d $vence +%s
((dife=$END-$START))
((dias=$dife/(60*60*24)))
if [ "$dias" -le "$warning" ] && [ "$dias" -ge "$critical" ]; then
     echo "WARNING - Quedan $dias para VENCER"
     exit 1
elif [ "$dias" -le "$critical" ]; then
     echo "CRITICAL - Quedan $dias para VENCER"
     exit 2
else
     echo "OK - Quedan $dias para VENCER"
     exit 0
fi
echo "UNKNOWN - Error Interno"
     exir 

Para ejecutarlo se debe dar permisos de ejecución :

chmod u+x check_cert.sh

Para ejecutarlo :

./check_cert.sh volcan01 443 20 10

Se obtiene el siguiente resultado :

OK – Quedan 129 días para VENCER

Publicado en Unix - Linux | Deja un comentario