Modificacion con awk

Buenas,

Estoy haciendo un servicio para mi distro que me envíe un mail si algun servicio que necesito que este levantado si o si tiene algún problema, a parte de que ya lo tengo configurado para que se levante en caso de fallo... pero tengo alguna duda a la hora de maquetar el cuerpo del mail, lo quiero dejar algo "bonito" construyéndolo en un temporal en html y luego enviándolo... y quiero poner el estado del servicio en negrita y en color rojo o verde dependiendo de si esta running o failed...

Sabéis alguna forma de limpiar esto, solo se me ocurre con awk y me encuentro con bastantes problemas a la hora de usar delimitadores, etc... tengo que estar reescribiéndolos... necesitaría sacar de estas líneas lo siguiente:

$1 <codigo_html> $2 </codigo_html> $3


De estas dos salidas... para el ejemplo va con un echo pero la idea es sacarla con systemctl status...

Salida 1:

Active: active (running) since Sun 2014-11-23 17:53:10 CET; 4min 12s ago
|____||____________| |________________________________________|
$1 $2 $3

echo "Active: active (running) since Sun 2014-11-23 17:53:10 CET; 4min 12s ago" | awk -F "[:)]" '{print $1":","<codigo_html>"$2")""</codigo_html>",$3$4":"$5}'


Como resultado:

Active: <codigo_html> active (running)</codigo_html>  since Sun 2014-11-23 1753:10 CET; 4min 12s ago


Salida 2:

Active: failed (Result: exit-code) since Sun 2014-11-23 17:53:10 CET; 4min 12s ago
|____||___________________| |________________________________________|
$1 $2 $3

echo "Active: failed (Result: exit-code) since Sun 2014-11-23 17:53:10 CET; 4min 12s ago" | awk -F "[:)]" '{print $1":","<codigo_html>"$2":"$3")",$4":"$5":"$6}'


Como resultado:

Active: <codigo_html> failed (Result: exit-code)</codigo_html>  since Sun 2014-11-23 17:53:10 CET; 4min 12s ago


Funcionar funciona, pero me parece demasiado guarro, no se si hay alguna opcion en AWK de que imprima los delimitadores y de por ejemplo decirle en lugar de $3$4$5$6$7... que imprima de $3 hasta el final... para dejarlo más limpio ya que en algun caso no se cuantos campos va a tener, si hasta el 5 o hasta el 20... y como veis al usar uno de los delimitadores ":" y como la hora va separada por ":"... me divide en más que en 3...

Un saludo!
The awk no tengo ni idea pero si en vez de usar "status" con el systemctl usas "show". Sale en un formato pensado para hacer scripts y demás para poder sacar lo que quieras más fácil, sale en el manual si quieres más info.
https://www.freedesktop.org/software/sy ... B%E2%80%A6
X-Tornado escribió:The awk no tengo ni idea pero si en vez de usar "status" con el systemctl usas "show". Sale en un formato pensado para hacer scripts y demás para poder sacar lo que quieras más fácil, sale en el manual si quieres más info.
https://www.freedesktop.org/software/sy ... B%E2%80%A6


Muchas gracias, la verdad es que esto me viene genial porque puedo sacar a variables todos los campos que necesito con el show y luego maquetar mucho más facilmente el html.

Un saludo y mil gracias!
2 respuestas