从文本文件内的块中提取信息

从文本文件内的块中提取信息

我有一个文本文件,其中包含类似的块

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

相关内容