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

zipe31 Messages postés 36402 Date d'inscription   Statut Contributeur Dernière intervention   6 430
 
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
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
zipe31 Messages postés 36402 Date d'inscription   Statut Contributeur Dernière intervention   6 430 > 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
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
zipe31 Messages postés 36402 Date d'inscription   Statut Contributeur Dernière intervention   6 430 > 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
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
GHISLINO Messages postés 214 Date d'inscription   Statut Membre Dernière intervention  
 
ok bien noté , et merci bcp Zipe31
0