Bashスクリプトを使用してすべての最初の列データにハイパーリンクを追加する

Bashスクリプトを使用してすべての最初の列データにハイパーリンクを追加する

ログファイルがあり、このファイルをフィルタリングして次の出力を取得します。

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表現を完全に理解していません。

関連情報