我有日誌文件,我正在過濾這些文件以獲得一些輸出,例如
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 表達式,因為輸出應該有破折號,但你的範例輸出中沒有破折號。