Convierta 7 líneas después de la coincidencia en filas CSV usando awk o sed

Convierta 7 líneas después de la coincidencia en filas CSV usando awk o sed

Tengo un archivo de texto que se parece a este:

707.421
KFDTL902
C
107.31 NL
Chn PCO
FMN 
Chn Co
727.102
KFDTL901
C
107.32 NL
Chn PCO
FMN 
Chn Co

Se repite en este patrón. Estoy intentando comparar con 707.xxx ([0-9]{3}.[0-9]{3}), tomar las siguientes 7 líneas después de la coincidencia y convertirlas en filas de un CSV con la primera la celda es la coincidencia de expresiones regulares. Entonces la salida sería:

707.421,KFDTL902,C,107.31 NL,Chn PCO,FMN,Chn Co
707.421,KFDTL902,C,107.31 NL,Chn PCO,FMN,Chn Co
707.421,KFDTL902,C,107.31 NL,Chn PCO,FMN,Chn Co

¿Es posible hacer esto usando awk o sed? ¿Cómo puedo usar las siguientes 7 líneas después de un partido usando estas herramientas?

Respuesta1

Con sed:

$ sed '/^[0-9]\{3\}\.[0-9]\{3\}$/{N;N;N;N;N;N;s/\n/,/g}' input.txt
707.421,KFDTL902,C,107.31 NL,Chn PCO,FMN ,Chn Co
727.102,KFDTL901,C,107.32 NL,Chn PCO,FMN ,Chn Co

Para cada línea que coincida con el patrón, lea y agregue las siguientes 6 líneas al espacio del patrón, luego reemplace todas las nuevas líneas con comas.

información relacionada