Agregue un hipervínculo a todos los datos de la primera columna usando el script Bash

Agregue un hipervínculo a todos los datos de la primera columna usando el script Bash

Tengo archivos de registro que estoy filtrando para obtener algún resultado como

WI_1_test  pass
WI_2_test fail
WI_3_test pass

Quiero que todos los datos de la primera columna tengan un hipervínculo en el que se pueda hacer clic... básicamente, que apunte a una URL que sea única para cada prueba.

con golpe.

mas explicacion! Tengo un archivo de registro de los resultados de las pruebas y quiero preparar un informe a partir del registro desordenado. Estoy usando awk para filtrar al pase WI_1_test anterior, etc. y debajo está mi código.

awk '/rtest.rosunit-rtest/' logfilefromjenkins.txt | sed 's/^.*\(WI\).\([0-9]*\)..\([a-Z]*\).*/\1-\2,\3/g'|awk 'BEGIN{OFS="\t"}$1="http://testspec.net/#/project/workitem?id="$1'|sort  > testreport.csv    . 

así => mi resultado actual después de ejecutar el código anterior muestra solo los diferentes enlaces en la primera columna.

http://testspec.net/#/project/workitem?id=WI_1_test , pass

http://testspec.net/#/project/workitem?id=WI_2_test , fail

Mientras tanto, mi objetivo final es que todos los datos que se muestran arriba en la primera columna apunten a URL únicas, de modo que cuando exporte un informe en PDF. Con solo hacer clic en cualquiera de las pruebas en la primera columna, el usuario puede ser redirigido a la URL de prueba en el sistema.

Esta es mi expectativa para todos los datos de la columna 1:

WI_1_prueba, aprobar

WI_2_prueba, fallar

Respuesta1

No es bonito pero puedes modificar tu expresión awk de esta manera.

awk 'BEGIN{OFS="\t"}$1="["$1"](http://testspec.net/#/project/workitem?id="$1")"'

la salida debería verse así

[WI_1_test](http://testspec.net/#/project/workitem?id=WI_1_test) , pass

[WI_2_test](http://testspec.net/#/project/workitem?id=WI_2_test) , fail

que es la sintaxis de rebajas para enlaces en los que se puede hacer clic

También deberías poder hacer esto en sed directamente.

tal vez así

sed 's/^.*\(WI\).\([0-9]*\)..\([a-Z]*\).*/[\1-\2](http:\/\/...=\1-\2),\3/g'

tal vez necesites escapar de los paréntesis y los paréntesis. No puedo realizar la prueba porque no tengo sus datos de entrada. Además, no entiendo completamente su expresión sed porque debería haber un guión en la salida, pero no hay ninguno en la salida de su ejemplo.

información relacionada