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