Underc0de - La Casa de los Informáticos

Foros Generales => Dudas y pedidos generales => Mensaje iniciado por: Electrónico en Diciembre 11, 2016, 08:03:31 AM

Título: [SOLUCIONADO] Expresiones regulares
Publicado por: Electrónico en Diciembre 11, 2016, 08:03:31 AM
Buenas a tod@s:

Estoy haciendo un script donde se consulta el parte meteorológico de una ubicación en concreto. Como resultado, me da un archivo con los resultados. En el archivo hay unos códigos para pintar de colores el parte meteorológico y sea más ameno, ya que se pintan la forma de las nubes, el sol, etc, y con colores queda más vistoso.

En el terminal queda muy bonito. Pero yo quiero mandar este archivo por correo como fichero adjunto, y si se abre con un editor de textos que no sea el sublimetext o el atom, se ve mal, ya que no es capaz de interpretar el código de colores. Por lo tanto, deseo quitarlos.

El código de colores va comprendido entre "[" y "m". He conseguido quitar el "[" sin embargo lo que hay detrás hasta la m (esta incluida) no he podido. Y solo me ha funcionado en algunos casos. Ejemplo:
38;5;226m    \   /    [0 Sunny
    16    38;5;226m     .-.      10 °C[0

He probado con esta expresión regular:

cat -n prova.txt | sed 's/\[\(.*\)m/\1/g' > prova_final.txt

Os adjunto el fichero para que veáis que formato tiene:


Weather for City: Madrid, Spain

    \   /     Sunny
     .-.      11 °C         
  ― (   ) ―   ↓ 0 km/h       
     `-'      10 km         
    /   \     0.0 mm         
                                                       ┌─────────────┐                                                       
┌──────────────────────────────┬───────────────────────┤ Sun 11. Dec ├───────────────────────┬──────────────────────────────┐
│           Morning            │             Noon      └──────┬──────┘    Evening            │            Night             │
├──────────────────────────────┼──────────────────────────────┼──────────────────────────────┼──────────────────────────────┤
│     \   /     Sunny          │     \   /     Sunny          │     \   /     Clear          │     \   /     Clear          │
│      .-.      10 °C          │      .-.      15 °C          │      .-.      14 °C          │      .-.      11 °C          │
│   ― (   ) ―   ↓ 1 – 2 km/h   │   ― (   ) ―   ↑ 2 – 3 km/h   │   ― (   ) ―   ↗ 6 – 12 km/h  │   ― (   ) ―   ↘ 5 – 8 km/h   │
│      `-'      10 km          │      `-'      10 km          │      `-'      10 km          │      `-'      10 km          │
│     /   \     0.0 mm | 0%    │     /   \     0.0 mm | 0%    │     /   \     0.0 mm | 0%    │     /   \     0.0 mm | 0%    │
└──────────────────────────────┴──────────────────────────────┴──────────────────────────────┴──────────────────────────────┘
                                                       ┌─────────────┐                                                       
┌──────────────────────────────┬───────────────────────┤ Mon 12. Dec ├───────────────────────┬──────────────────────────────┐
│           Morning            │             Noon      └──────┬──────┘    Evening            │            Night             │
├──────────────────────────────┼──────────────────────────────┼──────────────────────────────┼──────────────────────────────┤
│     \   /     Sunny          │     \   /     Sunny          │     \   /     Clear          │     \   /     Clear          │
│      .-.      9 – 10 °C      │      .-.      15 °C          │      .-.      13 °C          │      .-.      10 – 11 °C     │
│   ― (   ) ―   ↓ 4 – 5 km/h   │   ― (   ) ―   ↑ 1 – 3 km/h   │   ― (   ) ―   ↗ 4 – 5 km/h   │   ― (   ) ―   ↘ 4 – 6 km/h   │
│      `-'      10 km          │      `-'      10 km          │      `-'      10 km          │      `-'      10 km          │
│     /   \     0.0 mm | 0%    │     /   \     0.0 mm | 0%    │     /   \     0.0 mm | 0%    │     /   \     0.0 mm | 0%    │
└──────────────────────────────┴──────────────────────────────┴──────────────────────────────┴──────────────────────────────┘
                                                       ┌─────────────┐                                                       
┌──────────────────────────────┬───────────────────────┤ Tue 13. Dec ├───────────────────────┬──────────────────────────────┐
│           Morning            │             Noon      └──────┬──────┘    Evening            │            Night             │
├──────────────────────────────┼──────────────────────────────┼──────────────────────────────┼──────────────────────────────┤
│     \   /     Sunny          │     \   /     Sunny          │     \   /     Clear          │     \   /     Clear          │
│      .-.      9 °C           │      .-.      13 °C          │      .-.      13 °C          │      .-.      11 °C          │
│   ― (   ) ―   ↖ 2 – 3 km/h   │   ― (   ) ―   ↖ 3 km/h       │   ― (   ) ―   ↙ 1 – 3 km/h   │   ― (   ) ―   ↙ 1 – 2 km/h   │
│      `-'      10 km          │      `-'      10 km          │      `-'      10 km          │      `-'      10 km          │
│     /   \     0.0 mm | 0%    │     /   \     0.0 mm | 0%    │     /   \     0.0 mm | 0%    │     /   \     0.0 mm | 0%    │
└──────────────────────────────┴──────────────────────────────┴──────────────────────────────┴──────────────────────────────┘

Check new Feature: wttr.in/Moon or wttr.in/Moon@2016-Mar-23 to see the phase of the Moon
Follow @igor_chubin for wttr.in updates



Muchas gracias de antemano.

Cuando lo tenga fino publicaré un tutorial para que lo podáis replicar :)
Título: Re:Expresiones regulares
Publicado por: seth en Diciembre 12, 2016, 10:54:35 PM
Te sirve esto? http://www.andre-simon.de/doku/ansifilter/en/ansifilter.php
Título: Re:Expresiones regulares
Publicado por: Electrónico en Diciembre 14, 2016, 04:53:16 PM
Buenas a tod@s:

Gracias, le echaré una ojeada porque tiene buena pinta.

Lo pruebo y te comento.

Muchas gracias :)
Título: Re:Expresiones regulares [SOLUCIONADO]
Publicado por: Electrónico en Diciembre 17, 2016, 06:59:59 AM
Buenas a tod@s:

Al final, el link que me pasastes seth, no lo he tenido que utilizar, pero muchas gracias igualmente.

Al final he hecho que me busque los patrones que quería eliminar y me los elimine. Y ahora ya me sale bien.

Pero igualmente muchas gracias por la herramienta