Tengo un archivo de texto que tiene bloques como
dir1/dir2/dir3/name_run_number1:
line1_run_number1_part1
line2_run_number1_part2
line3_run_number1_part3...
Cada bloque está separado por una línea en blanco y hay un ":" en el "encabezado" de cada uno, mientras que cada bloque tiene un sufijo "número1" único después de "run_" que también está presente en las líneas dentro del bloque.
Lo que quiero hacer es para cada bloque, extraer el "número1" como se muestra en la primera línea y luego, para las líneas siguientes, contar del 1 al 20 y dar un mensaje si falta una línea "parteX". Cualquier bash o python estaría bien
Gracias
Respuesta1
Según el ejemplo dado de decisión de entrada|salida puede 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