
Ich habe einige Batchtests, die Datendateien im folgenden Format in einen Ordner kopieren. Jeder Test kopiert 1 Datei und der Dateiname ist eine generische Seriennummer. Ich möchte eine Liste aller fehlgeschlagenen Protokolldateinamen mit dem Testnamen erstellen.
Ich kann xargs verwenden, aber den Testnamen nicht ausdrucken. Das folgende Skript erstellt einen Dump aller Protokolldateien und funktioniert, obwohl ich mir eine bessere Lösung wünschen würde.
grep 'Fehlschlag\|Testname' *.log
Beispieldatei test_0123.log
[other log of 20MB]
* Result : Pass/Fail
* Testname : test_example_rsa_key_gen
[other log and trailer]
Antwort1
perl -0777ne 'if ( /Result : Fail/ and /Testname : (\S+)/ ) { print "filename: $ARGV; testname: $1" }' *.log