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.

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

miércoles, 20 de diciembre de 2017

Reemplazar EOF/CRLF por LF ( \n por \r\n )

Cuando trabajamos con desarrolladores qué trabajan en linux/windows/mac etc. Nos encontramos con problemas de cambio de separador de línea.

https://stackoverflow.com/questions/1552749/difference-between-cr-lf-lf-and-cr-line-break-types

Para cambiar de uno a otro se puede usar perl qué viene preinstalado en la gran mayoría de distribuciones.

perl -pi -e 's/\r\n/\n/g' NombreArchivo.ext

Para hacerlo recursivamente a archivos de una extensión (ex. *.txt) podríamos hacer:

find . -type f -name "*.txt" -exec perl -pi -e 's/\r\n/\n/g' {} \;

Gracias

Más populares

Archivo del blog