다음과 같은 블록이 포함된 텍스트 파일이 있습니다.
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