Extrahieren von Informationen aus Blöcken in einer Textdatei

Extrahieren von Informationen aus Blöcken in einer Textdatei

Ich habe eine Textdatei mit Blöcken wie

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

Jeder Block ist durch eine Leerzeile getrennt und in der „Kopfzeile“ jedes Blocks befindet sich ein „:“, während jeder Block nach dem Suffix „run_“ ein eindeutiges „number1“ hat, das auch in den Zeilen innerhalb des Blocks vorhanden ist.

Ich möchte für jeden Block die „Nummer 1“ extrahieren, wie in der ersten Zeile gezeigt, und dann für die Zeilen darunter von 1 bis 20 zählen und eine Meldung ausgeben, wenn eine „Teil X“-Zeile fehlt. Jede Bash oder Python wäre in Ordnung

Danke

Antwort1

Basierend auf dem gegebenen Beispiel für Input/Output kann die Entscheidung wie folgt lauten:

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

verwandte Informationen