ログファイルがあり、このファイルをフィルタリングして次の出力を取得します。
WI_1_test pass
WI_2_test fail
WI_3_test pass
最初の列のすべてのデータにクリック可能なハイパーリンクがあることを望みます。デフォルトでは、各テストに固有のURLを指します。
バッシュを使用してください。
もっと説明!テスト結果のログファイルがあり、混乱しているログからレポートを準備したいと思います。上記のWI_1_test pass..etcをフィルタリングするためにawkを使用しています。以下は私のコードです。
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
また、私の究極の目標は、PDFレポートをエクスポートするときに最初の列に表示されるすべてのデータが一意のURLを指すようにすることです。最初の列のテストをクリックすると、ユーザーはシステムのテスト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
クリック可能なリンクのマークダウン構文です。
sedから直接これを行うこともできます。
たぶんこんな感じ
sed 's/^.*\(WI\).\([0-9]*\)..\([a-Z]*\).*/[\1-\2](http:\/\/...=\1-\2),\3/g'
おそらくかっこと角かっこをエスケープする必要があります。入力データがないためテストできません。また、出力にはダッシュが必要ですが、出力例にはダッシュがないため、sed表現を完全に理解していません。