Uncategorized

Extraer caracteres en bash

Posted on

Con la instrucción:

var=”Ismael Garcia”

echo ${var:0:6}

Esto imprimirá: Ismael, le estoy diciendo que a partir de la posición 0 haga el recorrido y tome en cuenta 6 posiciones o caracteres y que lo muestre.

A continuación coloco un script para ejemplificar la explicación dada anteriormente:

#! /bin/bash

dias=-7
startdays=0
finishdays=6
declare -a amonths
for((k=startdays; $k<=$finishdays; k++))
do
fecha=$(date +”%d%m%y” -d “$dias days”)
dias=$(($dias+1))
checkmonth=${fecha:2:2}
amonths[$k]=$checkmonth
done

 

Lo que hace este script es guardar en un array(amonths) los números de meses de 7 días hacia atrás a partir de la fecha actual, es decir, hoy es 27/04/2017 recorrerá a partir del 20/04/2017 hacia la fecha actual y guardara en el amonths={04 04 04 04 04 04 04}.

script en github

 

 

setear codificación utf-8 en MariaDB

Posted on

En MariaDB el tipo de codificación(character) por default es latin1 y  la forma en como se comparan y ordenan los caracteres(collation) por default es latin1_swedish_ci. Esto puede ser especificado desde la consola servidor o bien desde la consola de  conexión cliente-servidor en el sistema administrador de base de datos (en mi caso MariaDB).

 

Para ver que tipo de codificación se tiene: se usa la consulta SHOW COLLATION, por ejemplo, para buscar la configuración por default de latin2: 

Acceder a la consola de conexión de MariaDB, con respectivo usuario y contraseña.

mysql -u root -p 

Usando la consulta:
SHOW COLLATION LIKE 'latin2%';
+---------------------+---------+----+---------+----------+---------+
| Collation           | Charset | Id | Default | Compiled | Sortlen |
+---------------------+---------+----+---------+----------+---------+
| latin2_czech_cs     | latin2  |  2 |         | Yes      |       4 |
| latin2_general_ci   | latin2  |  9 | Yes     | Yes      |       1 |
| latin2_hungarian_ci | latin2  | 21 |         | Yes      |       1 |
| latin2_croatian_ci  | latin2  | 27 |         | Yes      |       1 |
| latin2_bin          | latin2  | 77 |         | Yes      |       1 |
+---------------------+---------+----+---------+----------+---------+

Se observa que para el tipo charset = latin2 y por default la forma en como se compara y ordena los caracteres es:latin2_general_ci :


| latin2_general_ci   | latin2  |  9 | Yes     | Yes      |       1 |
Seteando a nivel servidor con utf-8:


Logueo como root
character:
Se hace uso de la variable de sistema character_set_server
set character_set_server = 'utf8';
collation:
set collation_server = 'utf8_general_ci';

Eliminar ficheros generados en GNU/Linux, especificando el número de días.

Posted on Actualizado enn

Si se tiene la necesidad de eliminar archivos que fueron generados en días determinados, se puede ejecutar el comado find, -mtime , -exec  y rm, esto con la finalidad de que se realice una búsqueda y que lo que encuentre en determinados días, los elimine.

con el comando -mtime se condiciona para que busque ficheros que fueron creados en días atrás, tomando como referencia el día  en el que se está ejecutando la instrucción.

Ejemplo:

find /ruta/a/archivos/* -mtime +7 -exec rm {} \;

Elimina archivos que fueron creados hace 7 días.

1.- Con el comando find buscas los archivos.
2.- Con el comando -mtime se condiciona para el número de días atrás en los que fueron creados(+7) (buscar archivos que fueron creado desde hace 7 días atrás).
3.- Con el comando rm se procede a borrarlos.