텍스트 파일 내의 블록에서 정보 추출

텍스트 파일 내의 블록에서 정보 추출

다음과 같은 블록이 포함된 텍스트 파일이 있습니다.

dir1/dir2/dir3/name_run_number1:
line1_run_number1_part1
line2_run_number1_part2
line3_run_number1_part3...

각 블록은 빈 줄로 구분되며 각 블록의 "헤더"에는 ":"가 있는 반면 각 블록에는 "run_" 접미사 뒤에 고유한 "number1"이 있으며 이는 블록 내부의 줄에도 나타납니다.

내가 원하는 것은 각 블록에 대해 첫 번째 줄에 표시된 대로 "number1"을 추출한 다음 아래 줄에 대해 1-20까지 계산하고 "partX" 줄이 누락된 경우 메시지를 표시하는 것입니다. 어떤 bash나 python도 괜찮을 것입니다.

감사해요

답변1

입력|출력 결정의 주어진 예를 기반으로 다음이 가능합니다.

awk -F_ '
    /:/ {
        for (i=0;i<20;i++) {
            getline
            sub("chunk","",$7)
            while ( i != +$7 ) {
                print "for " $2 " and " $5"_"$6 " you are missing chunk " i
                i++
                if (i>20)
                    break
                }
            }
    }' text.file

관련 정보