Извлечение информации из блоков внутри текстового файла

Извлечение информации из блоков внутри текстового файла

У меня есть текстовый файл, в котором есть такие блоки, как

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

Каждый блок отделен пустой строкой, и в «заголовке» каждого блока есть «:», при этом каждый блок имеет уникальный «number1» после суффикса «run_», который также присутствует в строках внутри блока.

Я хочу сделать так, чтобы для каждого блока извлекалось "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

Связанный контент