¿Cómo encontrar el mínimo de una columna en cada enésimo intervalos de un file, usando sed, sort, tail?

Quiero encontrar el mínimo de la quinta columna de un file en cada 12º intervalo de eso y save la línea asociada en un nuevo file.

Para encontrar el mínimo de la última 12ma línea que puedo usar

tail -n 12 $FILEname | sort -g -k 5,5 | head -1| awk '{print}'> tmp.out 

Pero, ¿cómo puedo realizar un process de este tipo iterativamente? Yo he tratado

 while read $FILEname do .... done 

que no fue exitoso

El file se ve como

 4.7 0.17 0.529 0 4.4846 4.7 0.17 0.529 1 4.5437474 4.7 0.17 0.529 2 5.63229739 4.7 0.17 0.529 3 4.672385157 4.7 0.17 0.529 4 4.698922468 4.7 0.17 0.529 5 4.699977195 4.7 0.17 0.529 6 4.699969329 4.7 0.17 0.529 7 3.69999717 4.7 0.17 0.529 8 4.6999998 4.7 0.17 0.529 9 2.7 4.7 0.17 0.59 10 3.9999998 4.7 0.17 0.59 11 4.69999999998 5 1 0.59 0 4.49569846 5 1 0.59 1 4.54330574 5 1 0.59 2 4.63739653 5 1 0.59 3 3.67233957 5 1 0.59 4 4.6989202468 5 1 0.59 5 4.699912595 5 1 0.59 6 4.6999329 5 1 0.59 7 4.69999999717 5 1 0.59 8 4.69999998 5 1 0.59 9 3.2547 5 1 0.529 10 4.69999999998 5 1 0.529 11 4.69999999998 

con casi 2000 líneas.

tratar

 awk 'NR%12 == 1 { min=$5 ; line=$0; } { if ($5 < min) { min=$5 ;line=$0; } } NR%12 == 0 { print line ;} END { if (NR%12) print line ;} ' 

esto básicamente reinicia el mínimo cada 12 líneas (1,13,25, …), calcula el mínimo, e imprímelo para la línea 12,24,36, …

La instrucción END imprime el último minuto si el número de línea no es un múltiplo de 12.

tenga en count que puede alinear esta afirmación, llámala con

 awk '....' input_file.txt