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