У меня есть файлы журналов, которые я фильтрую, чтобы получить какой-то вывод, например:
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, потому что в выводе должен быть дефис, но в вашем примере вывода его нет.