Remplacer chaîne de caractere par un nombre
Utilisateur anonyme
-
Utilisateur anonyme -
Utilisateur anonyme -
Bonjour,
j'ai le fichier contenant les lignes suivantes séparées par ":"
6794096:ville darles,13637,arles:fournitures:adapte:02/06/2008:13:01000000:les fleurs d anadia,382975068-18,84260,sarrians
6794096:ville darles,13637,arles:fournitures:adapte:02/06/2008:13:01023000:marcanterra,498260041-21,80120,saint quentin en tourmont
6794096:ville darles,13637,arles:fournitures:adapte:02/06/2008:13:45300000:scea fanfelle gaussens,413850009-15,64110,gelos
sur mon 7ème champ , j'ai un nombre de 8 chiffres et je veux garder que les deux premiers, je ne sais pas le faire dans le fichier avec les autres champs!! je sais le faire avec cut ou awk seulement mai je dois d'abord extraire que le champs 7 mais ce n'est pas ce que je veux , je veux garder tous les champs et faire la modification. je sais avec sed mais je n'arrive pas à ecrire bien la formule :
sed 's /[0-9]{8\}/$1,$2/g' ==> les $1, $2 ne vont pas !!! comment faire svp?? je n'arrive toujours pas à maitriser la commande sed.
le resultat voulu:
6794096:ville darles,13637,arles:fournitures:adapte:02/06/2008:13:01:les fleurs d anadia,382975068-18,84260,sarrians
j'ai le fichier contenant les lignes suivantes séparées par ":"
6794096:ville darles,13637,arles:fournitures:adapte:02/06/2008:13:01000000:les fleurs d anadia,382975068-18,84260,sarrians
6794096:ville darles,13637,arles:fournitures:adapte:02/06/2008:13:01023000:marcanterra,498260041-21,80120,saint quentin en tourmont
6794096:ville darles,13637,arles:fournitures:adapte:02/06/2008:13:45300000:scea fanfelle gaussens,413850009-15,64110,gelos
sur mon 7ème champ , j'ai un nombre de 8 chiffres et je veux garder que les deux premiers, je ne sais pas le faire dans le fichier avec les autres champs!! je sais le faire avec cut ou awk seulement mai je dois d'abord extraire que le champs 7 mais ce n'est pas ce que je veux , je veux garder tous les champs et faire la modification. je sais avec sed mais je n'arrive pas à ecrire bien la formule :
sed 's /[0-9]{8\}/$1,$2/g' ==> les $1, $2 ne vont pas !!! comment faire svp?? je n'arrive toujours pas à maitriser la commande sed.
le resultat voulu:
6794096:ville darles,13637,arles:fournitures:adapte:02/06/2008:13:01:les fleurs d anadia,382975068-18,84260,sarrians
A voir également:
- Remplacer chaîne de caractere par un nombre
- Caractère ascii - Guide
- Remplacer disque dur par ssd - Guide
- Caractère spéciaux - Guide
- Caractere speciaux - Guide
- Remplacant de coco - Accueil - Réseaux sociaux
3 réponses
en fait , j'ai un autre problème que je viens de voir, des fois j'ai plusieurs nombres séparés par une vergule "," comme suit:
6794096:ville darles,13637,arles:fournitures:adapte:02/06/2008:13:01000000, 01236528, 01569826:les fleurs d anadia,382975068-18,84260,sarrians
6794096:ville darles,13637,arles:fournitures:adapte:02/06/2008:13:01023000:marcanterra,498260041-21,80120,saint quentin en tourmont
et quand j'applique la formule, j'ai ceci:
6794096:ville darles,13637,arles:fournitures:adapte:02/06/2008:13:01, 01236528, 01569826:les fleurs d anadia,382975068-18,84260,sarrians
6794096:ville darles,13637,arles:fournitures:adapte:02/06/2008:13:01:marcanterra,498260041-21,80120,saint quentin en tourmont
sur la premiere ligne je veux garder que le premier nombre composé de deux chiffres (01) et effacer les nombres aprés la virgules (01236528, 01569826).
je fais : sed 's/,[^:]*//g' 2008.textV4 sa marche mais le probleme sa efface meme les données du champ numéro 8 qui viennent apres la virgule et ce n'est pas ce que je veux. donc j essayé comme ceci :
siham@megalink:~$ sed 's/,[^:]([0-9]{8})//g' 2008.textV4
pour dire je veux effacer les nombres de 8 chiffres apres la virgule mais sa marche pas :-((
6794096:ville darles,13637,arles:fournitures:adapte:02/06/2008:13:01000000, 01236528, 01569826:les fleurs d anadia,382975068-18,84260,sarrians
6794096:ville darles,13637,arles:fournitures:adapte:02/06/2008:13:01023000:marcanterra,498260041-21,80120,saint quentin en tourmont
et quand j'applique la formule, j'ai ceci:
6794096:ville darles,13637,arles:fournitures:adapte:02/06/2008:13:01, 01236528, 01569826:les fleurs d anadia,382975068-18,84260,sarrians
6794096:ville darles,13637,arles:fournitures:adapte:02/06/2008:13:01:marcanterra,498260041-21,80120,saint quentin en tourmont
sur la premiere ligne je veux garder que le premier nombre composé de deux chiffres (01) et effacer les nombres aprés la virgules (01236528, 01569826).
je fais : sed 's/,[^:]*//g' 2008.textV4 sa marche mais le probleme sa efface meme les données du champ numéro 8 qui viennent apres la virgule et ce n'est pas ce que je veux. donc j essayé comme ceci :
siham@megalink:~$ sed 's/,[^:]([0-9]{8})//g' 2008.textV4
pour dire je veux effacer les nombres de 8 chiffres apres la virgule mais sa marche pas :-((
Re,
~$ cat fic 6794096:ville darles,13637,arles:fournitures:adapte:02/06/2008:13:01000000:les fleurs d anadia,382975068-18,84260,sarrians 6794096:ville darles,13637,arles:fournitures:adapte:02/06/2008:13:01023000:marcanterra,498260041-21,80120,saint quentin en tourmont O6794096:ville darles,13637,arles:fournitures:adapte:02/06/2008:13:45300000:scea fanfelle gaussens,413850009-15,64110,gelos 6794096:ville darles,13637,arles:fournitures:adapte:02/06/2008:13:01000000, 01236528, 01569826:les fleurs d anadia,382975068-18,84260,sarrians 6794096:ville darles,13637,arles:fournitures:adapte:02/06/2008:13:01023000:marcanterra,498260041-21,80120,saint quentin en tourmont :~$ sed -r 's/([0-9]{2})[0-9]{6}(,.*)?:/\1:/' fic 6794096:ville darles,13637,arles:fournitures:adapte:02/06/2008:13:01:les fleurs d anadia,382975068-18,84260,sarrians 6794096:ville darles,13637,arles:fournitures:adapte:02/06/2008:13:01:marcanterra,498260041-21,80120,saint quentin en tourmont O6794096:ville darles,13637,arles:fournitures:adapte:02/06/2008:13:45:scea fanfelle gaussens,413850009-15,64110,gelos 6794096:ville darles,13637,arles:fournitures:adapte:02/06/2008:13:01:les fleurs d anadia,382975068-18,84260,sarrians 6794096:ville darles,13637,arles:fournitures:adapte:02/06/2008:13:01:marcanterra,498260041-21,80120,saint quentin en tourmont
siham@megalink:~$ sed -r 's/([0-9]{2})[0-9]{6}/\1/' 2008.textV3
sed: -e expression #1, char 30: unknown option to 's'
J'étais tout content de pouvoir donner une réponse par rapport à ce que vous m'avez appris aujourd'hui :(
J'avais un truc comme
mais je suis pas encore au point parce que si je réussis bien à écrire la ligne avec le print, j'arrive pas à modifier le fichier pour autant :s
Ben, ça marche très bien même