Concactener des données sur une même ligne

Résolu
GHISLINO Messages postés 234 Statut Membre -  
GHISLINO Messages postés 234 Statut Membre -
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 38797 Statut Contributeur 6 433
 
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 234 Statut Membre
 
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 38797 Statut Contributeur 6 433 > GHISLINO Messages postés 234 Statut Membre
 
ç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 234 Statut Membre
 
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 38797 Statut Contributeur 6 433 > GHISLINO Messages postés 234 Statut Membre
 
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 234 Statut Membre
 
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 234 Statut Membre
 
ok bien noté , et merci bcp Zipe31
0