Script shell et awk

Bonjour,

J'ai un script Bash avec ceci:

select a.id,b.nomdivers from matable a inner join autretable b on b.ref=a.id;


La requette ci dessus donne comme résultat :

id | nomdivers
----+------------------
1 | nom1
1 | nom2
1 | nom3
etc...

J'utilise pour afficher les valeurs AWK comme ceci:
awk -F'|' '{ print "<id>"$1"</id>\n<nomdivers><![CDATA["$2"]]></nomdivers>" }' >> file.txt


Sachant que pour le même "id" on peut avoir de 1 a x valeurs de "nomdivers", je souhaiterais concaténer ces valeurs comme ceci :
awk -F'|' '{ print "<id>"$1"</id>\n<nomdivers><![CDATA["nom1,nom2,nom3,etc.."]]></nomdivers>" }'


Est ce possible?

Merci.



L'accès au savoir est la première liberté que chaque homme devrait avoir.

5 réponses

  1. Contributeur
    montre des données avant - après
    0
    1. Ma question porte plus sur la façon de récupérer les valeurs multiples puis de les afficher(faire une boucle peut être) plus que sur le séparateur.
      0
      1. Contributeur
        le print les affiche séparés par <espace>, pour les séparer par , utiliser ","
        0
        1. Bonjour et merci.

          Ok et une fois que les nom1,2 et 3 ont été lu?
          0
          1. Contributeur
            hello
            oui mais il faut avoir lu nom1 2 et 3 avant
            0