Retour a la ligne avec awk.

Résolu
econdami Messages postés 247 Date d'inscription   Statut Membre Dernière intervention   -  
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

Je veux faire une sortie avec awk sur plusieurs lignes, alors j'utilise "/n" mais dans ce cas il y a un espace en debut de nouvelle ligne. Je ne trouve pas comment repartir sur une nouvelle ligne directement en debut de ligne. Si quelqu'un a la solution, merci d'avance.

Voila ce que je fais:

awk '{print $1, $2, "HN", $3"\n", $1, $2, "N", $4"\n", $1, $2, "CA", $5"\n", $1, $2, "CB", $6"\n", $1, $2, "CO", $7}' < test >> test_final

Bonne journee


3 réponses

econdami Messages postés 247 Date d'inscription   Statut Membre Dernière intervention  
 
J'ai trouve une methode que je ne trouve pas tres elegante mais qui marche !!!:

awk 'BEGIN{OFS="";}{print substr($1,2)," " $2, " HN", " "$3"\n", substr($1,2), " "$2, " N", " "$4"\n", substr($1,2), " "$2, " CA", " "$5"\n", substr($1,2), " "$2, " CB
", " "$6"\n", substr($1,2), " "$2, " CO", " "$7}' < test >> test_final
0
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
hello
enlever la virgule après \n, virgule == 1 espace
awk '{print $1, $2, "HN", $3"\n" $1, $2, "N", $4"\n" $1, $2, "CA", $5"\n" $1, $2, "CB", $6"\n" $1, $2, "CO", $7}' < test >> test_final 
exemple
$ echo aa bb | awk '{print $1, $2}'
aa bb
$ echo aa bb | awk '{print $1 $2}'
aabb
0
econdami Messages postés 247 Date d'inscription   Statut Membre Dernière intervention  
 
Super !!!! merci beaucoup je n'avais pas vu cette subtilite !!!

Merci encore.
Bonne journee !
0
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
la , représente le contenu de la variable OFS, par défaut un espace
0