
다음 형식의 데이터 파일을 폴더에 덤프하는 일괄 테스트가 있습니다. 각 테스트는 1개의 파일을 덤프하며 파일 이름은 일반 일련 번호입니다. Testname을 사용하여 실패한 모든 로그 파일 이름 목록을 생성하고 싶습니다.
xargs를 사용할 수 있지만 테스트 이름을 인쇄할 수 없습니다. 다음 스크립트는 모든 로그 파일을 덤프하며 더 나은 솔루션을 원하지만 실행 가능합니다.
grep '실패\|테스트 이름' *.log
샘플 파일 test_0123.log
[other log of 20MB]
* Result : Pass/Fail
* Testname : test_example_rsa_key_gen
[other log and trailer]
답변1
perl -0777ne 'if ( /Result : Fail/ and /Testname : (\S+)/ ) { print "filename: $ARGV; testname: $1" }' *.log