Concactener des données sur une même ligne

Résolu
GHISLINO Messages postés 214 Date d'inscription   Statut Membre Dernière intervention   -  
GHISLINO Messages postés 214 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour à tous,

J'ai le fichier FILE1 Ci-dessous et j'amerais avoir le fichier FILE2 en sortie avec comme séparateur point virgule.

Merci d'avance

MRBTS-22077	10 unitName=FRMB path=/SMOD_R-1/bbext1/BBMOD_R-2
MRBTS-22077 10 path=/SMOD_R-1/eif2_rf6/RMOD_R-2 additionalFaultID=10 RMOD-4
MRBTS-22077 10 path=/SMOD_R-1/bbext1/BBMOD_R-2/srio_rf_ext4/RMOD_R-4


MRBTS-22077;10 unitName=FRMB path=/SMOD_R-1/bbext1/BBMOD_R-2;10 path=/SMOD_R-1/eif2_rf6/RMOD_R-2 additionalFaultID=10 RMOD-4;10 path=/SMOD_R-1/bbext1/BBMOD_R-2/srio_rf_ext4/RMOD_R-4 

2 réponses

  1. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
     
    Salut,

    $ cat fich 
    MRBTS-22077 10 unitName=FRMB path=/SMOD_R-1/bbext1/BBMOD_R-2
    MRBTS-22077 10 path=/SMOD_R-1/eif2_rf6/RMOD_R-2 additionalFaultID=10 RMOD-4
    MRBTS-22077 10 path=/SMOD_R-1/bbext1/BBMOD_R-2/srio_rf_ext4/RMOD_R-4

    $ sed ':z;N;s/\n[^ ]* /;/;bz' fich
    MRBTS-22077 10 unitName=FRMB path=/SMOD_R-1/bbext1/BBMOD_R-2;10 path=/SMOD_R-1/eif2_rf6/RMOD_R-2 additionalFaultID=10 RMOD-4;10 path=/SMOD_R-1/bbext1/BBMOD_R-2/srio_rf_ext4/RMOD_R-4

    ;-))
    0
    1. GHISLINO Messages postés 214 Date d'inscription   Statut Membre Dernière intervention  
       
      Bonjour Zipe31,

      Merci pour ton retour rapide
      çà marche si j'ai un seul parttern (MRBTS-22077) mais pas OK quand j'ai plus de deux parttern.

      et aussi je doit avoir le point virgule juste après le parttern avant de concactener les autres infos.

      >MRBTS-22077</gras> 10 unitName=FRMB path=/SMOD_R-1/bbext1/BBMOD_R-2
      <gras>MRBTS-22077</gras> 10 path=/SMOD_R-1/eif2_rf6/RMOD_R-2 additionalFaultID=10 RMOD-4
      <gras>MRBTS-22077</gras> 10 path=/SMOD_R-1/bbext1/BBMOD_R-2/srio_rf_ext4/RMOD_R-4
      <gras>MRBTS-12076</gras> fffffffffff
      <gras>MRBTS-12076</gras> aaaaaaaaaaaaaaa


      Résultat
       sed ':z;N;s/\n[^ ]* /;/;bz' FICH.txt
      MRBTS-22077 10 unitName=FRMB path=/SMOD_R-1/bbext1/BBMOD_R-2;10 path=/SMOD_R-1/eif2_rf6/RMOD_R-2 additionalFaultID=10 RMOD-4;10 path=/SMOD_R-1/bbext1/BBMOD_R-2/srio_rf_ext4/RMOD_R-4;fffffffffff;aaaaaaaaaaaaaaa
      0
    2. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501 > GHISLINO Messages postés 214 Date d'inscription   Statut Membre Dernière intervention  
       
      ça marche si j'ai un seul parttern (MRBTS-22077) mais pas OK quand j'ai plus de deux parttern
      D'où l'importance de donner des exemples précis ;-(

      Si tu peux revoir tes derniers exemples, ils sont illisibles ;-(
      0
    3. GHISLINO Messages postés 214 Date d'inscription   Statut Membre Dernière intervention  
       
      ok désolé voici le fichier de départ avec au moins deux partterns mais je dois pourvoir traiter un fichier avec au moins 100 partterns

      MRBTS-22077 10 unitName=FRMB path=/SMOD_R-1/bbext1/BBMOD_R-2
      MRBTS-22077 10 path=/SMOD_R-1/eif2_rf6/RMOD_R-2 additionalFaultID=10 RMOD-4
      MRBTS-22077 10 path=/SMOD_R-1/bbext1/BBMOD_R-2/srio_rf_ext4/RMOD_R-4
      MRBTS-12076 fffffffffff
      MRBTS-12076 aaaaaaaaaaaaaaa




      le fichier à la sortir doit être comme ci-dessous

      MRBTS-22077;10 unitName=FRMB path=/SMOD_R-1/bbext1/BBMOD_R-2;10 path=/SMOD_R-1/eif2_rf6/RMOD_R-2 additionalFaultID=10 RMOD-4;10 path=/SMOD_R-1/bbext1/BBMOD_R-2/srio_rf_ext4/RMOD_R-4
      MRBTS-12076;fffffffffff;aaaaaaaaaaaaaaa
      0
    4. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501 > GHISLINO Messages postés 214 Date d'inscription   Statut Membre Dernière intervention  
       
      Ok.

      $ cat fich 
      MRBTS-22077 10 unitName=FRMB path=/SMOD_R-1/bbext1/BBMOD_R-2
      MRBTS-22077 10 path=/SMOD_R-1/eif2_rf6/RMOD_R-2 additionalFaultID=10 RMOD-4
      MRBTS-22077 10 path=/SMOD_R-1/bbext1/BBMOD_R-2/srio_rf_ext4/RMOD_R-4
      MRBTS-12076 fffffffffff
      MRBTS-12076 aaaaaaaaaaaaaaa


      $ sed -n ':z;$p;N;/\([^ ]* \).*\n\1/{s/\n[^ ]* /;/;bz};P;D' fich 
      MRBTS-22077 10 unitName=FRMB path=/SMOD_R-1/bbext1/BBMOD_R-2;10 path=/SMOD_R-1/eif2_rf6/RMOD_R-2 additionalFaultID=10 RMOD-4;10 path=/SMOD_R-1/bbext1/BBMOD_R-2/srio_rf_ext4/RMOD_R-4
      MRBTS-12076 fffffffffff;aaaaaaaaaaaaaaa
      0
    5. GHISLINO Messages postés 214 Date d'inscription   Statut Membre Dernière intervention  
       
      J'ai l'erreur suivante

      sed -n ':z;$p;N;/\([^ ]* \).*\n\1/{s/\n[^ ]* /;/;bz};P;D' FICH.txt
      sed: can't find label for jump to 'z}'
      0
  2. GHISLINO Messages postés 214 Date d'inscription   Statut Membre Dernière intervention  
     
    ok bien noté , et merci bcp Zipe31
    0