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
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/