Remplacement de caractere dans une chaine
RésoluGHISLINO Messages postés 214 Date d'inscription Statut Membre Dernière intervention -
Bonjour à tous,
J'ai le texte ci-dessous je souhaiterais remplacer avec awk les 3 dernières virgules par un tiret du 6 "-" merci d'avance
fichier source
07/07/2023 10:38,07/07/2023 10:38,",",",0"",degraded_cells=WCDMA:339682,339725,375868
08/07/2023 07:00,08/07/2023 07:00,",",",0"",faulty_cells=WCDMA:347911,347922,347933
08/07/2023 07:00,08/07/2023 07:00,",",",0"",faulty_cells=GSM:347911,347922
08/07/2023 07:00,08/07/2023 07:00,",",",0"",faulty_cells=LTE:347911,347922,347933
fichier de sortie
07/07/2023 10:38,07/07/2023 10:38,",",",0"",degraded_cells=WCDMA:3396823-39725-375868
08/07/2023 07:00,08/07/2023 07:00,",",",0"",faulty_cells=WCDMA:347911-347922-347933
08/07/2023 07:00,08/07/2023 07:00,",",",0"",faulty_cells=GSM:347911-347922
08/07/2023 07:00,08/07/2023 07:00,",",",0"",faulty_cells=LTE:347911-347922-347933
Windows / Chrome 114.0.0.0
- Remplacement de caractere dans une chaine
- Remplacement coco - Accueil - Réseaux sociaux
- Coco.fr remplacement - Accueil - Réseaux sociaux
- Caractère ascii - Guide
- Caractère spéciaux - Guide
- Caractere speciaux - Guide
11 réponses
hello
l y a une différence ligne 1 entre source et sortie 339725 et 39725
j'ai enlevé les espaces
$ awk 'BEGIN {FS=OFS=":"} {gsub(",", "-", $NF); print $0}' source 07/07/2023 10:38,07/07/2023 10:38,",",",0"",degraded_cells=WCDMA:339682-339725-375868 08/07/2023 07:00,08/07/2023 07:00,",",",0"",faulty_cells=WCDMA:347911-347922-347933 08/07/2023 07:00,08/07/2023 07:00,",",",0"",faulty_cells=GSM:347911-347922 08/07/2023 07:00,08/07/2023 07:00,",",",0"",faulty_cells=LTE:347911-347922-347933
Hello Dubcek,
Merci beaucoup pour votre retour , cela fonctionne bien avec le fichier source que j'ai collé dans mon premier message.
Cependant si j'ai le fichier source Csv qui est désorganiser , la ligne de commande ne marche pas. j 'ai joint un template ci-dessous , s'il vous plait pouvez y jeter un coup d'oeil.
Merci d'avance
" 768872581,PLMN-PLMN/MRBTS-191/EQM_R-1/APEQM_R-1/ALD_R-3/RETU_R-1 , 5, 1, 99,07-07-2023 10:38:49, , , 1, , , 7113, 2,19a9155a9bbcfd4fed1b57d26dc84a86d7682034 , 9.2234E+18,BASE STATION ANTENNA LINE PROBLEM ,07-07-2023 10:38:49,07-07-2023 10:38:51, , 0, ,degraded_cells=WCDMA:339682,339725,375868 ,RET Antenna control failure ,1843 unitName=TILT path=/SMOD_R-1/bbext1/BBMOD_R-1/rf3/RMOD_R-1/ret/ALD_R-3/RETU_R-1 serial_no=AM160819201803-Y3 additionalFaultID=1843 RETU-1 , , , , 0, 9714482, 9714482, 0, 0,07/07/23 09:38:51.749094 , 0, 0, , ,MRBTS-191/EQM_R-1/APEQM_R-1/ALD_R-3/RETU_R-1 ,PLMN-PLMN/MRBTS-191 , 0, , ,MRBTS:MRBTS , 2,PLMN-PLMN/MRBTS-191 , 1,31-12-9999 23:59:59,07/07/23 10:38:49.000000 +01:00 ,07/07/23 10:38:49.000000 +01:00 - -"
" 769014358,PLMN-PLMN/MRBTS-1952/EQM_R-1/APEQM_R-1/RMOD_R-1 , 5, 1, 99,07-07-2023 18:38:36, , , 1, , , 7116, 1,5706efd545d41ae1c0e2ea4157b2e684f8866847 , 9.2234E+18,BASE STATION SERVICE PROBLEM ,07-07-2023 18:38:36,07-07-2023 18:38:54, , 0, ,faulty_cells=GSM:all" "LTE:1,2,3 ,No connection to unit ,10 unitName=FR path=/SMOD_R-2(Left)/bbext1/BBMOD_R-4/rf2/RMOD_R-1 additionalFaultID=10 RMOD-1 , , , , 0, 9495972, 9495972, 0, 0,07/07/23 17:38:54.869257 , 0, 1, , ,MRBTS-1952/EQM_R-1/APEQM_R-1/RMOD_R-1 ,PLMN-PLMN/MRBTS-1952 , 0, , ,MRBTS:MRBTS , 2,PLMN-PLMN/MRBTS-1952 , 1,31-12-9999 23:59:59,07/07/23 18:38:36.000000 +01:00 ,07/07/23 18:38:36.000000 +01:00 - -"
" 769136441,PLMN-PLMN/MRBTS-43911/EQM_R-1/APEQM_R-1/RMOD_R-1 , 5, 1, 99,08-07-2023 07:00:00, , , 1, , , 7116, 1,7ce97cddf53b7f5efda7d7beca47e4314245ef09 , 9.2234E+18,BASE STATION SERVICE PROBLEM ,08-07-2023 07:00:00,08-07-2023 07:00:02, , 0, ,faulty_cells=WCDMA:347911,347922,347933,347974,347985,347996,529707,529718,529729 ,No connection to unit ,10 unitName=FRGU path=/SMOD_R-1/rf_ext1/RMOD_R-1 serial_no=K9170442911 additionalFaultID=10 RMOD-1 , , , , 0, 6790101, 6790101, 0, 0,08/07/23 06:00:02.556107 , 0, 0, , ,MRBTS-43911/EQM_R-1/APEQM_R-1/RMOD_R-1 ,PLMN-PLMN/MRBTS-43911 , 0, , ,MRBTS:MRBTS , 2,PLMN-PLMN/MRBTS-43911 , 1,31-12-9999 23:59:59,08/07/23 07:00:00.000000 +01:00 ,08/07/23 07:00:00.000000 +01:00 - -"
Bonsoir Dubcek,
les éléments à modifier commencent toujours par les trois mots ci-dessous
affected_cells=
faulty_cells=
degraded_cells=
Merci
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
,faulty_cells=WCDMA:347911,347922,347933,347974,347985,347996,529707,529718,529729
là, faut-il remplacer toutes les , ou les 3 dernières ?
Hello Dubcek,
Désolé pour la réponse tardive j'étais en déplacement,
Il faudra remplacer toutes la sequences des , par le "-".
Merci
j'ai une solution sed
$ sed -e :1 -e 's@\(cells.*\),\(.*[ \t]\)@\1-\2@;t1' in > out
dans in
,degraded_cells=WCDMA:339682,339725,375868
,faulty_cells=GSM:all" "LTE:1,2,3
,faulty_cells=WCDMA:347911,347922,347933,347974,347985,347996,529707,529718,529729
dans out
,degraded_cells=WCDMA:339682-339725-375868
,faulty_cells=GSM:all" "LTE:1-2-3
,faulty_cells=WCDMA:347911-347922-347933-347974-347985-347996-529707-529718-529729
Bonjour dubcek,
sed -e :1 -e 's@\(cells.*\),\(.*[ \t]\)@\1-\2@;t1' in > out
le code marche bien mais cependant il prend enormement de temps un fichier volumineux de 142 lignes.
Please il ya t'il une solution pour améliorer le temps de traitement?
Merci d'avance