Linux/Unix Shell Scripting - Colorear palabras al realizar un cat

 
Vista:

Colorear palabras al realizar un cat

Publicado por Runouri (1 intervención) el 10/05/2016 13:50:33
Buenas
Cuando muestro la salida de un fichero de texto, necesito que determinados estados aparezcan con determinados colores (pero que salga todo el texto) P.E:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
cat poolresult.txt
Domain Name         # XXXX_domain
Server Name         # XXX.XXXX.XXXX
Data Source Name # odiMasterRepository
Data source state # Running
Test # None
Data Source Name # opss-data-source
Data source state # shutdown
Test # None
Data Source Name # odiWorkRepository
Data source state # unknow
Test # None
Data Source Name # opss-audit-DBDS
Data source state # Running
Test # None
Data Source Name # opss-audit-viewDS
Data source state # Running
Test # None
Data Source Name # odiESFERAWorkRepository
Data source state # Running
Test # None
Domain Name         # XXX_domain
Server Name         # XXX.XXX.XXX
Data Source Name # opss-data-source
Data source state # Running
Test # None
Data Source Name # opss-audit-DBDS
Data source state # Running
Test # None
Data Source Name # opss-audit-viewDS
Data source state # Running
Test # None
Data Source Name # LocalSvcTblDataSource
Data source state # Running
Test # None
Necesito que el Running aparezca en verde y el resto de estados en rojo
He probado con :
1
sed -e "s/\(.Running\)/\o033[32m\1\o033[39m/" poolresult.txt
Pero solo en verde el Running. Si pruebo con un array no me funciona
¿Podeis ayudarme?
Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Colorear palabras al realizar un cat

Publicado por Tom (361 intervenciones) el 10/05/2016 16:39:51
Probablemente haya soluciones más elaboradas usando awk (por ejemplo) ... pero en tu caso, yo añadiría una substitución por cada palabra a colorear:

1
sed -e "s/\# \(Running\)/\# \o033[32m\1\o033[39m/" poolresult.txt | sed 's/\# \(shutdown\)/\# \o033[33m\1\o033[39m/'
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar