Concactener des données sur une même ligne

Résolu/Fermé
GHISLINO Messages postés 214 Date d'inscription lundi 25 juillet 2011 Statut Membre Dernière intervention 8 décembre 2023 - 7 oct. 2019 à 12:23
GHISLINO Messages postés 214 Date d'inscription lundi 25 juillet 2011 Statut Membre Dernière intervention 8 décembre 2023 - 30 janv. 2020 à 02:04
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 dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 407
7 oct. 2019 à 13:18
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 lundi 25 juillet 2011 Statut Membre Dernière intervention 8 décembre 2023
7 oct. 2019 à 14:19
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 dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 407 > GHISLINO Messages postés 214 Date d'inscription lundi 25 juillet 2011 Statut Membre Dernière intervention 8 décembre 2023
7 oct. 2019 à 14:22
ç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 lundi 25 juillet 2011 Statut Membre Dernière intervention 8 décembre 2023
7 oct. 2019 à 14:31
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 dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 407 > GHISLINO Messages postés 214 Date d'inscription lundi 25 juillet 2011 Statut Membre Dernière intervention 8 décembre 2023
7 oct. 2019 à 15:33
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 lundi 25 juillet 2011 Statut Membre Dernière intervention 8 décembre 2023
7 oct. 2019 à 16:11
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 lundi 25 juillet 2011 Statut Membre Dernière intervention 8 décembre 2023
30 janv. 2020 à 02:04
ok bien noté , et merci bcp Zipe31
0