Dedicado a mis proyectos en Gambas ,un lenguaje de programación parecido al Visual Basic + Java pero ampliamente mejorado y...¡¡para gnu/linux!!.La potencia del gnu/linux sumada a la facilidad del Basic



Consultas, Desarrollo de programas y petición de presupuestos:



domingo, 28 de mayo de 2017

Como Decolorear la salida de un comando (quitar colores)

Como Decolorear la salida de un comando (quitar colores)

Colorear la salida de un comando, es muy útil, porque hace más  vistosa la información que muestra por la terminal, pero.... ¿que pasa si queremos analizar el texto que sale? Los caracteres especiales que se usan para colorear el código, son un incordio y nos molestan a la hora de extraer el de texto plano..



Ejemplo de codigos que se usan para colorear un texto para que salga por consola 

Bien, pues preguntando en el foro de gambas-es.org, Shordi ha compartido un código que elimina  estos código de colores, y convierten en un texto decoloreado (sin colores), fácilmente analizable.

Para ello usa el comando sed y expresiones regulares.


En la terminal seria algo así como:


$cat SalidaConColores.txt |sed -r "s/\\x1B\\[([0-9]{1,2}(;[0-9]{1,2})?)?[m|K]//g"  >SalidaSinColores.txt



En gambas 3, la función sería:

Public Function decolorar() As String 'devuelve un listado con información detallada del sistema
 
      Dim slistado As String
      'adaptándolo a tu fichero (y al path donde lo tengas, claro):
      Shell "cat ~/Escritorio/l.txt |sed -r \"s/\\x1B\\[([0-9]{1,2}(;[0-9]{1,2})?)?[m|K]//g\" " To slistado
      Return slistado
End


Os dejo un video explicando su uso en la terminal:




Fuentes:
https://www.gambas-es.org/viewtopic.php?t=6401&p=38370#p38370
https://robologs.net/2016/03/31/como-colorear-el-output-de-la-terminal-en-linux/