Retour a la ligne avec awk.

Résolu
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. 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
    1. Contributeur
      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
      1. Super !!!! merci beaucoup je n'avais pas vu cette subtilite !!!

        Merci encore.
        Bonne journee !
        1. Contributeur
          la , représente le contenu de la variable OFS, par défaut un espace