Extraindo informações de blocos dentro de arquivo de texto

Extraindo informações de blocos dentro de arquivo de texto

Eu tenho um arquivo de texto que contém blocos como

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

Cada bloco é separado por uma linha em branco e existe o ":" no "cabeçalho" de cada um, enquanto cada bloco possui um "número1" exclusivo após o sufixo "run_" que também está presente nas linhas dentro do bloco

O que eu quero fazer é para cada bloco extrair o "número1" conforme mostrado na primeira linha e depois para as linhas abaixo contar de 1 a 20 e dar uma mensagem se faltar uma linha "partX". Qualquer bash ou python estaria bem

Obrigado

Responder1

Com base no exemplo dado de decisão de entrada | saída pode ser:

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

informação relacionada