
Tenho alguns testes em lote que despejam arquivos de dados do seguinte formato em uma pasta. Cada teste despeja 1 arquivo e o nome do arquivo é um número de série genérico. Gostaria de gerar uma lista de todos os nomes de arquivos de log com falha com o Testname.
Posso usar xargs, mas não consigo imprimir o Testname. O script a seguir despeja todos os arquivos de log e é viável, embora eu queira uma solução melhor.
grep 'Falha\|Nome do teste' *.log
Arquivo de amostra test_0123.log
[other log of 20MB]
* Result : Pass/Fail
* Testname : test_example_rsa_key_gen
[other log and trailer]
Responder1
perl -0777ne 'if ( /Result : Fail/ and /Testname : (\S+)/ ) { print "filename: $ARGV; testname: $1" }' *.log