Retour a la ligne avec awk.

Résolu
econdami Messages postés 253 Statut Membre -  
dubcek Messages postés 18627 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

  1. econdami Messages postés 253 Statut Membre
     
    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
  2. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 659
     
    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
  3. econdami Messages postés 253 Statut Membre
     
    Super !!!! merci beaucoup je n'avais pas vu cette subtilite !!!

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