Добавить гиперссылку ко всем данным первого столбца с помощью скрипта Bash

Добавить гиперссылку ко всем данным первого столбца с помощью скрипта Bash

У меня есть файлы журналов, которые я фильтрую, чтобы получить какой-то вывод, например:

WI_1_test  pass
WI_2_test fail
WI_3_test pass

Я хочу, чтобы все данные в первом столбце имели гиперссылку, на которую можно было бы нажать... по сути, указывающую на URL-адрес, уникальный для каждого теста.

с Башем.

больше объяснений! У меня есть файл журнала с результатами теста, и я хочу подготовить отчет из этого запутанного журнала. Я использую awk для фильтрации по указанному выше проходу WI_1_test и т. д., и ниже приведен мой код.

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    . 

вот так => мой текущий результат после запуска кода выше выводит только разные ссылки в первом столбце.

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

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

Между тем, моя конечная цель — чтобы все данные, как показано выше в первом столбце, указывали на уникальные URL-адреса, так, чтобы при экспорте отчета в формате PDF, просто нажав на любой тест в первом столбце, пользователь мог быть перенаправлен на тестовый URL-адрес в системе.

Вот мои ожидания относительно всех данных столбца 1:

WI_1_тест, проходить

WI_2_тест, неудача

решение1

это некрасиво, но вы можете изменить свое выражение awk следующим образом

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

Вывод должен выглядеть следующим образом:

[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

что представляет собой синтаксис markdown для кликабельных ссылок

Вы также сможете сделать это напрямую в sed.

возможно, как это

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

возможно, вам нужно экранировать квадратные и круглые скобки. Я не могу проверить, потому что у меня нет ваших входных данных. Кроме того, я не полностью понимаю ваше выражение sed, потому что в выводе должен быть дефис, но в вашем примере вывода его нет.

Связанный контент