我有日志文件,我正在过滤这些文件以获得一些输出,例如
WI_1_test pass
WI_2_test fail
WI_3_test pass
我想让第一列上的所有数据都有一个可单击的超链接...基本上指向每个测试唯一的 url。
用bash。
更多解释!我有一个测试结果的日志文件,我想从混乱的日志中准备一份报告。我正在使用 awk 来过滤上述 WI_1_test pass ..等。下面是我的代码。
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。
这是我对所有第一列数据的期望:
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 表达式,因为输出中应该有破折号,但你的示例输出中没有破折号。