domingo, 24 de mayo de 2020

Migrar / importar una Parallels Virtual Machine a VirtualBox

En ocasiones por cuestiones de configuración y recursos necesitamos importar una maquina virtual de Parallels en Mac osx a Windows/Linux con VirtualBox pero no existe una manera directa por lo cual tenemos que realizar algunos trucos.

Primero descargamos e instalamos VirtualBox en nuestro Windows / Linux de la página oficial: https://www.virtualbox.org/

Copiamos  el archivo windows.hdd{3454-fdgfg-43543-gfdgd}.hds de  nuestra pvm a migrar a la carpeta donde vamos a tener nuestra maquina virtual, por ejemplo:

D:/virtual/

o

/home/miusuario/virtual/

Abrimos VirtualBox y damos clic en Crear nueva maquina virtual

Nombre: miwindows
Carpeta de maquina: D:/virtual/
Tipo: Microsoft Windows
Versión: Windows 7 (32-bit)



Seleccionamos la cantidad de memoria RAM

Se recomienda mínimo 2048 MB (2GB)

Renombramos el archivo windows.hdd{3454-fdgfg-43543-gfdgd}.hds a miwindows.hdd, observe que el nombre que le pusimos es el que especificamos de la maquina virtual nueva y cambiamos la extensión de .hds a .hdd

Para Linux, 

mv windows.hdd{3454-fdgfg-43543-gfdgd}.hds miwindows.hdd


Seleccionamos : Usar un archivo  de disco duro virtual existente y damos clic en el icono de la carpeta.

Damos clic en Añadir / Agregar y seleccionamos nuestra imagen renombrada.
Damos clic en Seleccionar.


Damos clic en Crear


Esperamos un momento y damos clic en Iniciar

Sencillo, su maquina virtual está funcionando.







Agregar Bootstrap a un proyecto de Angular 8 / 9

Agregar Bootstrap a nuestro proyecto Angular es una tarea sencilla.

Desde la carpeta de nuestro proyecto ejecutamos:

npm install bootstrap --save

También es recomendable instalar Jquery

npm install jquery --save

Como algo opcional podemos instalar popper

npm install popper.js --save

Además de Font-awesome

npm install font-awesome 

Ahora configuramos la conexión con los estilos y librerías, para ello abrimos con un editor el archivo angular.json y agregamos lo siguiente:


"styles": [
"src/styles.scss"
"node_modules/bootstrap/dist/css/bootstrap.min.css",
],
"scripts": [
"node_modules/jquery/dist/jquery.min.js",
"node_modules/bootstrap/dist/js/bootstrap.min.js"
]

Saludos



miércoles, 13 de mayo de 2020

Leer archivo csv por columnas en bash Linux con awk para crear insert sql y eliminar espacios

En ocasiones tenemos archivos en csv u otro formato que contienen datos en columnas separados por algún carácter especial y queremos leerlo y crear insert  de alguna tabla

Existen diferentes maneras de crear los script de sql, desde usar una hoja de calculo o bien un script. Está vez usaremos el bash de nuestro sistema operativo Linux/mac/Unix para solucionarlo con el comando awk

Supongamos que nuestro archivo es misdatos.txt con el siguiente contenido:

Juan|Díaz|juandiaz@sitiodeprueba.com|1989-10-02
Bruno|Díaz|brunodiaz@sitiodeprueba.com|2000-09-24
Pedro|Paramo|pedroparamo@sitiodeprueba.com|1970-12-01

Primero, cree un archivo desde la consola o su editor preferido (la extensión no importa) con el siguiente código:

#nano crearscript.pie

#!/bin/bash

cat misdatos.txt | awk '{$1=$1};1' |

awk  'BEGIN {FS="|"}

{
valores= "\""$1"\",\""$2"\",\""$3"\",\""$4"\""
}

{
print "insert into tabla01 (firtsname, lastname, email, fecha) values( "valores");";

}'



Funciona de la siguiente manera:
Obtenemos los datos de archivo de datos
cat misdatos.txt | 

Limpiamos caracteres al principio y al final de cada columna sin afectar los datos

awk '{$1=$1};1' |

Indicamos el caracter separador de datos en esta ocasión es el pipe (|)
awk  'BEGIN {FS="|"}

Colocamos los valores de las columnas en una variable para manejabilidad.
valores= "\""$1"\",\""$2"\",\""$3"\",\""$4"\"

Imprimimos la salida incrustando el valor de la variable con los valores

print "insert into tabla01 (firtsname, lastname, email, fecha) values( "valores");";

Una vez realizado el ajuste de la tabla e información con los datos correspondientes en el archivo, guardamos.

Cambiamos los permisos al archivo para ejecutar

#chmod 755 crearscript.pie

y ejecutamos

#./crearscript.pie

insert into tabla01 (firtsname, lastname, email, fecha) values( "Juan","Díaz","juandiaz@sitiodeprueba.com","1989-10-02");
insert into tabla01 (firtsname, lastname, email, fecha) values( "Bruno","Díaz","brunodiaz@sitiodeprueba.com","2000-09-24");
insert into tabla01 (firtsname, lastname, email, fecha) values( "Pedro","Paramo","pedroparamo@sitiodeprueba.com","1970-12-01");


Excelente y fácil.

Saludos