imprimer N ligne après le motif jusqu’à ce que la ligne vierge soit atteinte

J’ai besoin d’imprimer plusieurs lignes après que le motif soit atteint jusqu’à ce que la ligne vide soit atteinte.

aaa bbb ccc ddd aaa fff ggg hhh iii jjj 

Sortie souhaitée avec des données de groupe sur une seule ligne:

 aaa bbb ccc ddd aaa fff ggg hhh iii jjj 

 awk '$1=$1' RS="\n\n" file aaa bbb ccc ddd aaa fff ggg hhh iii jjj 

Ou certains plus robustes (dans le cas d’un 0 comme premier chiffre.

 awk '{$1=$1}1' RS="\n\n" file 

PS, cela ne peut fonctionner qu’avec gawk, ou awk qui prend en charge plusieurs caractères dans RS

Un moyen avec awk :

 $ awk '{$1=$1}1' RS= FS='\n' OFS=' ' file aa bbb ccc ddd aaa fff ggg hhh iii jjj 

Utiliser sed :

 $ sed -r ':a;N;$!ba;s/(.)\n/\1 /g' inputfile aaa bbb ccc ddd aaa fff ggg hhh iii jjj 

Cela pourrait fonctionner pour vous (GNU sed):

 sed ':a;$!N;s/\n$//;t;s/\n/ /;ta' file