¿Cómo extraer datos de la tabla html en el script de shell?

Estoy tratando de crear un script BASH que extraiga los datos de la tabla HTML. A continuación se muestra el ejemplo de la tabla de donde necesito extraer datos:

<table border=1>
<tr>
<td><b>Component</b></td>
<td><b>Status</b></td>
<td><b>Time / Error</b></td>
</tr>
<tr><td>SAVE_DOCUMENT</td><td>OK</td><td>0.406 s</td></tr>
<tr><td>GET_DOCUMENT</td><td>OK</td><td>0.332 s</td></tr>
<tr><td>DVK_SEND</td><td>OK</td><td>0.001 s</td></tr>
<tr><td>DVK_RECEIVE</td><td>OK</td><td>0.001 s</td></tr>
<tr><td>GET_USER_INFO</td><td>OK</td><td>0.143 s</td></tr>
<tr><td>NOTIFICATIONS</td><td>OK</td><td>0.001 s</td></tr>
<tr><td>ERROR_LOG</td><td>OK</td><td>0.001 s</td></tr>
<tr><td>SUMMARY_STATUS</td><td>OK</td><td>0.888 s</td></tr>
</table>

Y quiero que el script BASH lo muestre así:

SAVE_DOCUMENT OK 0.475 s
GET_DOCUMENT OK 0.345 s
DVK_SEND OK 0.002 s
DVK_RECEIVE OK 0.001 s
GET_USER_INFO OK 4.465 s
NOTIFICATIONS OK 0.001 s
ERROR_LOG OK 0.002 s
SUMMARY_STATUS OK 5.294 s

¿Cómo hacerlo

Hasta ahora he intentado usar el sed, pero no sé cómo usarlo bastante bien. El encabezado de la tabla (Componente, Estado, Tiempo / Error) excluí con grep usandogrep "<tr><td>, así que solo las líneas que comienzan con<tr><td> será seleccionado para el próximo análisis (sed). Esto es lo que usé:sed 's@<\([^<>][^<>]*\)>\([^<>]*\)</\1>@\2@g' Pero entonces<tr>as etiquetas @ aún permanecen y tampoco separan las cadenas. En otras palabras, el resultado de este script es:

<tr>SAVE_DOCUMENTOK0.406 s</tr>

El comando completo del script en el que estoy trabajando es:

cat $FILENAME | grep "<tr><td>" | sed 's@<\([^<>][^<>]*\)>\([^<>]*\)</\1>@\2@g'

Respuestas a la pregunta(6)

Su respuesta a la pregunta