Supprimer des chaines de caractere
Utilisateur anonyme
-
lami20j -
lami20j -
Bonjour,
je cherche à supprimer les cedex (le mot cedex et son numero) dans des lignes (citées ci-apres) , jai utilisé la fonction sed pour remplacer le cedex par un vide mai il m'efface que le cedex et laisse le numero et l'espace.
pour information, mes lignes contiennent 5 champs séparés par des deux points.
voici mes lignes:
7320892:ville de tours:37926:tours cedex 9:22/12/2008:
7328306:universite de haute alsace:68093:mulhouse cedex:29/12/2008
7294198:ville de la roche-sur-yon:85021:la roche sur yon cedex01:08/12/2008:
7315529:le mans metropole - communaute urbaine:72039:le mans cedex 10:18/12/2008
quand je fais : echo cedex | sed 's/cedex//'|less
voila ce qui me donne :
7320892:ville de tours:37926:tours 9:22/12/2008:
7328306:universite de haute alsace:68093:mulhouse :29/12/2008
7294198:ville de la roche-sur-yon:85021:la roche sur yon 01:08/12/2008:
7315529:le mans metropole - communaute urbaine:72039:le mans 10:18/12/2008
est-ce-qu'il y a une fonction pour dire : efface moi tous les cedex et tout ce qui vient apres cedex (sur le champ n° 4 ou il y a cedex seulement) toute en sachant que mes champs sont separés par des deux points.
merci bien
je cherche à supprimer les cedex (le mot cedex et son numero) dans des lignes (citées ci-apres) , jai utilisé la fonction sed pour remplacer le cedex par un vide mai il m'efface que le cedex et laisse le numero et l'espace.
pour information, mes lignes contiennent 5 champs séparés par des deux points.
voici mes lignes:
7320892:ville de tours:37926:tours cedex 9:22/12/2008:
7328306:universite de haute alsace:68093:mulhouse cedex:29/12/2008
7294198:ville de la roche-sur-yon:85021:la roche sur yon cedex01:08/12/2008:
7315529:le mans metropole - communaute urbaine:72039:le mans cedex 10:18/12/2008
quand je fais : echo cedex | sed 's/cedex//'|less
voila ce qui me donne :
7320892:ville de tours:37926:tours 9:22/12/2008:
7328306:universite de haute alsace:68093:mulhouse :29/12/2008
7294198:ville de la roche-sur-yon:85021:la roche sur yon 01:08/12/2008:
7315529:le mans metropole - communaute urbaine:72039:le mans 10:18/12/2008
est-ce-qu'il y a une fonction pour dire : efface moi tous les cedex et tout ce qui vient apres cedex (sur le champ n° 4 ou il y a cedex seulement) toute en sachant que mes champs sont separés par des deux points.
merci bien
A voir également:
- Supprimer des chaines de caractere
- Supprimer rond bleu whatsapp - Guide
- Caractère ascii - Guide
- Recherche automatique des chaînes ne fonctionne pas - Guide
- Caractère spéciaux - Guide
- Impossible de supprimer une page word - Guide
10 réponses
Salut,
P.S. Avant le 1er et 2ème * il y a un espace
sed -i.orig 's/ *cedex *[0-9]*//' fichier_cedex
P.S. Avant le 1er et 2ème * il y a un espace
bonjour,
merci pour votre réponse. c'est quoi "orig" ???. avec ma formule il prend en consideration que les lignes où les cedex et les numeros sont separés par un espaces. mais ou c'est attaché (cad ya pas d'espace ex: cedex01) il n'eafface pas le cedex.
je viens d'essayé votre formule mais voila ce qu'il m'affiche:
sed: -e expression #1, char 20: unknown option to `s'
c'est quoi le probleme svp?
merci pour votre réponse. c'est quoi "orig" ???. avec ma formule il prend en consideration que les lignes où les cedex et les numeros sont separés par un espaces. mais ou c'est attaché (cad ya pas d'espace ex: cedex01) il n'eafface pas le cedex.
je viens d'essayé votre formule mais voila ce qu'il m'affiche:
sed: -e expression #1, char 20: unknown option to `s'
c'est quoi le probleme svp?
Re,
-i.orig permet de sauvegarde le fichier original
Affiche ici ce que tu tapes.
Regarde par exemple dans mon test
Le fichier sans cedex
Et l'original
-i.orig permet de sauvegarde le fichier original
Affiche ici ce que tu tapes.
Regarde par exemple dans mon test
$ cat cedex 7320892:ville de tours:37926:tours cedex 9:22/12/2008: 7328306:universite de haute alsace:68093:mulhouse cedex:29/12/2008 7294198:ville de la roche-sur-yon:85021:la roche sur yon cedex01:08/12/2008: 7315529:le mans metropole - communaute urbaine:72039:le mans cedex 10:18/12/2008 $ sed -i.orig 's/ *cedex *[0-9]*//' cedex
Le fichier sans cedex
$ cat cedex 7320892:ville de tours:37926:tours:22/12/2008: 7328306:universite de haute alsace:68093:mulhouse:29/12/2008 7294198:ville de la roche-sur-yon:85021:la roche sur yon:08/12/2008: 7315529:le mans metropole - communaute urbaine:72039:le mans:18/12/2008
Et l'original
$ cat cedex.orig 7320892:ville de tours:37926:tours cedex 9:22/12/2008: 7328306:universite de haute alsace:68093:mulhouse cedex:29/12/2008 7294198:ville de la roche-sur-yon:85021:la roche sur yon cedex01:08/12/2008: 7315529:le mans metropole - communaute urbaine:72039:le mans cedex 10:18/12/2008 $
re,
oui c'est bon, avec sed 's/ *cedex[^:]*//' , ça marche super bien.
avec ma formule, j'ai ajouté une * au debut (echo cedex *[0-9]*| sed 's/cedex *[0-9]*//'|less) et sa marche aussi sauf que s'a laisse les espaces.
mille merci et bonne journée
oui c'est bon, avec sed 's/ *cedex[^:]*//' , ça marche super bien.
avec ma formule, j'ai ajouté une * au debut (echo cedex *[0-9]*| sed 's/cedex *[0-9]*//'|less) et sa marche aussi sauf que s'a laisse les espaces.
mille merci et bonne journée
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Re,
sauf que s'a laisse les espaces.
Oui puisque tu as utilisé
sauf que s'a laisse les espaces.
Oui puisque tu as utilisé
sed 's/cedex *[0-9]*//'au lieu de
sed 's/ *cedex *[0-9]*//'Tu vois la différence.
oui oui, vous avez raison.
j'emprofite pour poser une autre question alors. ici dans mon exemple il s'agit des chiffres. mais comment faire pour les lettres ??? (est ce que je fais *[a-z]* ????)
exemple:
mindef/dga/dcm
mindef /cca/emm
mindef/dga
je veux remplacer le "mindef" par "ministere de la defense" et supprimer tout ce qui vient apres!! tout en sachant que mes champs sont toujours séparés par des ":" et dans le champ que jai cité plus haut , tout ce qui vient apres mindef est séparé par un slash .
merci
j'emprofite pour poser une autre question alors. ici dans mon exemple il s'agit des chiffres. mais comment faire pour les lettres ??? (est ce que je fais *[a-z]* ????)
exemple:
mindef/dga/dcm
mindef /cca/emm
mindef/dga
je veux remplacer le "mindef" par "ministere de la defense" et supprimer tout ce qui vient apres!! tout en sachant que mes champs sont toujours séparés par des ":" et dans le champ que jai cité plus haut , tout ce qui vient apres mindef est séparé par un slash .
merci
Re,
Oui oui, vous avez raison.
Ce n'est pas ça que je cherche ;-)
Je voulais juste que tu comprennes d'où vennait l'erreur.
Tu veux dire que les lignes ont la forme
C'est toujours comme ça, avec mindef?
Oui oui, vous avez raison.
Ce n'est pas ça que je cherche ;-)
Je voulais juste que tu comprennes d'où vennait l'erreur.
Tu veux dire que les lignes ont la forme
7320892:ville de tours:37926:tours:22/12/2008:mindef/dga/dcm?
C'est toujours comme ça, avec mindef?
voici un extrait de mes lignes:
6406705:mindef/sga/dcsid/eg bordeaux:33998:bordeaux :28/01/2008:
6403171:mindef/dga/det/etbs technique bourges:18021:bourges:25/01/2008:
6497716:etat/mindef/sga/sid/drg de rennes:49041:angers:28/02/2008:
je veux supprimer ci qui est avant et apres mindef. la 3eme ligne par exemple , il y a le mot "etat" avant mindef.
merci
6406705:mindef/sga/dcsid/eg bordeaux:33998:bordeaux :28/01/2008:
6403171:mindef/dga/det/etbs technique bourges:18021:bourges:25/01/2008:
6497716:etat/mindef/sga/sid/drg de rennes:49041:angers:28/02/2008:
je veux supprimer ci qui est avant et apres mindef. la 3eme ligne par exemple , il y a le mot "etat" avant mindef.
merci
Re,
Essaie
Essaie
$ cat cedex 7320892:ville de tours:37926:tours cedex01:22/12/2008:mindef/dga/dcm 7328306:universite de haute alsace:68093:mulhouse cedex:29/12/2008:mindef/cca/emm 7294198:ville de la roche-sur-yon:85021:la roche sur yon cedex01:08/12/2008:mindef/dga 7315529:le mans metropole - communaute urbaine:72039:le mans cedex 10:18/12/2008:mindef $ sed 's/ *cedex[^:]*//;s/:mindef.*/:ministere de la defense/' cedex 7320892:ville de tours:37926:tours:22/12/2008:ministere de la defense 7328306:universite de haute alsace:68093:mulhouse:29/12/2008:ministere de la defense 7294198:ville de la roche-sur-yon:85021:la roche sur yon:08/12/2008:ministere de la defense 7315529:le mans metropole - communaute urbaine:72039:le mans:18/12/2008:ministere de la defense $
[tmpfs]$ cat plop 6406705:mindef/sga/dcsid/eg bordeaux:33998:bordeaux :28/01/2008: 6403171:mindef/dga/det/etbs technique bourges:18021:bourges:25/01/2008: 6497716:etat/mindef/sga/sid/drg de rennes:49041:angers:28/02/2008: [tmpfs]$ sed 's/:.*mindef[^:]*/:ministère de la défense/' plop 6406705:ministère de la défense:33998:bordeaux :28/01/2008: 6403171:ministère de la défense:18021:bourges:25/01/2008: 6497716:ministère de la défense:49041:angers:28/02/2008:
;-))