Buscar este blog

Aviso

El autor de éste blog no se hace responsable de los posibles daños o perdidas de información, que pudieran ocasionarse en su sistema o su vida por la aplicación de la información aquí contenida.

lunes, 17 de diciembre de 2018

Leer y escribir archivos en NodeJS

Deseo actualizar un archivo llamado 'version-of-package.json' actualizando la versión de este con la que tiene el archivo package.json.

version-of-package.json:
{
  "_comment": "Este archivo es generado automáticamente con el comando 'npm run update-version', suba al repositorio si cambia la versión",
  "version": "0.1.41"
}

update-version.js:
'use strict';

const fs = require('fs');
const packagePath = './package.json';
const versionOfPackagePath = './src/version-of-package.json';

let rawdata = fs.readFileSync(packagePath);
const packageConfig = JSON.parse(rawdata);
const appVersion = packageConfig.version;

rawdata = fs.readFileSync(versionOfPackagePath);
const versionOfPackageConfig = JSON.parse(rawdata);
versionOfPackageConfig.version = appVersion;

rawdata = JSON.stringify(versionOfPackageConfig, null, 2);  
fs.writeFileSync(versionOfPackagePath, rawdata);

console.log(`Actualizada versión ${versionOfPackageConfig.version} a ${appVersion}.`);

En el package.json agregar en "scripts":
"update-version": "node ./update-version.js"

Buena suerte!

viernes, 28 de septiembre de 2018

Regex to identify each group of?

https://regex101.com/r/8Fq0qa/1

// https://stackoverflow.com/questions/14751802/split-string-every-3-characters-from-back-using-javascript
// https://stackoverflow.com/questions/469913/regular-expressions-is-there-an-and-operator
const replace = value.replace( /(?=(?:........)*$)(?=\.)./g, millions);

(?=(?:.{8})*$)(?=\.).

lunes, 24 de septiembre de 2018

Cambiar el contenido de un archivo con expresiones regulares

Muchas veces el uso de expresiones regulares confunde no tanto por su sintaxis, si no como esta se usa embebida en otros programas, uno de estos ejemplos es el comando SED, que posee un "flag"/opción especialmente diseñada para eso. Por ejemplo, podía usar una operación binaria OR para coincidir cualquier conjunto de caracteres y reemplazarlos por uno único.

$ cat foobar 
http://colombia.com
http://gmail.com/
http://www.glud.co

Ejemplo 1: Reemplazar los dominios .com y .co por .gov

$ sed -E 's#(.com|.co)#.gov#g' foobar
http:/.govlombia.gov
http://gmail.gov/
http://www.glud.gov

Ejemplo 2: Reemplazar solamente los dominios que terminan por ".com" o ".com/" por ".gov"

$ sed -E 's#(.com|.com/)$#\.gov#g' foobar
http://colombia.gov
http://gmail.gov
http://www.glud.co


Ejemplo 3: Reemplazar solamente los dominios que terminan por ".com" o ".com/" por ".gov" y ".gov/" respectivamente.
Este incluye que primero evalúa la condición de terminar con ".com" o ".com/" y luego hace un simple reemplazo global de ".com" por ".gov".
$ sed -E '/(.com|.com\/)$/s/.com/.gov/g' foobar 
http://colombia.com
http://gmail.com/
http://www.glud.co

Ejemplo 4: Lo mismo de arriba pero con muchas expresiones seguidas.
$ sed -E '/(.com|.com\/)$/s/.com/.gov/g;/(.gov|.gov\/)$/s/http/https/g' foobar
https://colombia.gov
https://gmail.gov/
http://www.glud.co
Ten en cuenta que para la segunda validación no se puede usar "/(.com|.com\/)$/s/http/https/g", porque en ese punto ".com" ya fue reemplazado por ".gov".

O
$ sed -E -e '/(.com|.com\/)$/s/.com/.gov/g' -e '/(.gov|.gov\/)$/s/http/https/g' foobar
https://colombia.gov
https://gmail.gov/
http://www.glud.co

O

$ sed -Ee '/(.com|.com\/)$/s/.com/.gov/g' -Ee '/(.gov|.gov\/)$/s/http/https/g'
https://colombia.gov
https://gmail.gov/
http://www.glud.co

Referencias:

- https://linuxconfig.org/how-to-substitute-only-a-first-match-occurrence-using-sed-command
- https://www.linuxtopia.org/online_books/linux_tool_guides/the_sed_faq/sedfaq4_004.html
- https://www.gnu.org/software/sed/manual/html_node/Regular-Expressions.html
- https://unix.stackexchange.com/questions/155805/sed-replace-first-k-instances-of-a-word-in-the-file
- https://www.tutorialspoint.com/unix/unix-regular-expressions.htm

Cambiar extensión a ficheros con BASH

En este caso se cambia la extensión .txt a .csv, ten cuidado al reemplazar. Verifica primero con:

find . -iname "*.txt" -exec sh -c 'echo mv {} "$(dirname {})/$(basename {} .txt).csv"' \;

Y luego con:
find . -iname "*.txt" -exec sh -c 'mv {} "$(dirname {})/$(basename {} .txt).csv"' \;

martes, 6 de marzo de 2018

Realizar una correcta instalación de tu sistema iniciando por un buen BACKUP

Realizar un backup es lo primero qué debemos hacer al instalar una distribución GNU/Linux, luego de esto, realiza una instalación consciente de lo qué se hace para generar mayor conocimiento.

Una forma rápida de hacer un backup es:

rsync -avP <origen> <destino>

Para más instrucciones puedes ver este documento parte de una exposición.

https://docs.google.com/document/d/1chjTsY5gftYHGWQ-U_vi_Je54mtYthEzfzEA4CCFaIs/edit?usp=sharing

sábado, 3 de febrero de 2018

Son todos los demás los qué se reprimen

4x01 https://youtu.be/6fdLqJkbhP8?t=10m21s

Aprendí qué no he estado reprimiendo mis sentimientos, los he sabido expresar, son todos los demás los qué se reprimen.
Además es divertido romper cosas!

Billy
Billy & Mandy
Billy y Mandy

Más populares

Archivo del blog