Ich habe Protokolldateien, die ich filtere, um eine Ausgabe wie diese zu erhalten
WI_1_test pass
WI_2_test fail
WI_3_test pass
Ich möchte, dass alle Daten in der ersten Spalte einen anklickbaren Hyperlink enthalten, der grundsätzlich auf eine URL verweist, die für jeden Test eindeutig ist.
mit Bash.
weitere Erklärung! Ich habe eine Protokolldatei mit Testergebnissen und möchte aus dem unübersichtlichen Protokoll einen Bericht erstellen. Ich verwende awk, um nach dem obigen WI_1_Testdurchlauf usw. zu filtern. Unten ist mein Code.
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 .
etwa so => mein aktuelles Ergebnis, nachdem ich den obigen Code ausgeführt habe, gibt nur die unterschiedlichen Links in der ersten Spalte aus.
http://testspec.net/#/project/workitem?id=WI_1_test , pass
http://testspec.net/#/project/workitem?id=WI_2_test , fail
In der Zwischenzeit besteht mein Endziel darin, dass alle Daten, wie oben in der ersten Spalte angezeigt, auf eindeutige URLs verweisen, sodass der Benutzer beim Exportieren eines PDF-Berichts durch einfaches Klicken auf einen der Tests in der ersten Spalte zur Test-URL im System weitergeleitet werden kann.
Dies ist meine Erwartung für alle Daten in Spalte 1:
WI_1_test, passieren
WI_2_test, scheitern
Antwort1
es ist nicht schön, aber Sie können Ihren Awk-Ausdruck wie folgt ändern
awk 'BEGIN{OFS="\t"}$1="["$1"](http://testspec.net/#/project/workitem?id="$1")"'
Die Ausgabe sollte dann so aussehen
[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
Das ist die Markdown-Syntax für anklickbare Links
Sie sollten dies auch direkt in sed tun können.
vielleicht so
sed 's/^.*\(WI\).\([0-9]*\)..\([a-Z]*\).*/[\1-\2](http:\/\/...=\1-\2),\3/g'
Vielleicht müssen Sie die Klammern und runden Klammern escapen. Ich kann das nicht testen, weil ich Ihre Eingabedaten nicht habe. Außerdem verstehe ich Ihren Sed-Ausdruck nicht ganz, weil in der Ausgabe ein Bindestrich enthalten sein sollte, in Ihrer Beispielausgabe aber keiner vorhanden ist.