Formater un fichier avec SED
Résolu
pcsystemd
Messages postés
734
Statut
Membre
-
zipe31 Messages postés 38797 Statut Contributeur -
zipe31 Messages postés 38797 Statut Contributeur -
Bonjour,
mon fichier a traiter contient plusieurs lignes de la sorte :
name='L'immobilier'
name='l'occitan'
name='Cap'horn'
name='CAP'Horn'
et j'ai besoin de formater mon fichier de la sorte afin d'echapper ma côte ' pour des INSERT sql en utilisant la syntaxe E''(je ne sais pas encore exactement la bonne syntaxe) :
name='LE'''immobilier'
name='lE'''occitan'
name='CapE'''horn'
name='CAPE'''Horn'
J'ai essayé cela avec SED :
mais cela ne fonctionne pas correctement.
Une idée?
Merci
mon fichier a traiter contient plusieurs lignes de la sorte :
name='L'immobilier'
name='l'occitan'
name='Cap'horn'
name='CAP'Horn'
et j'ai besoin de formater mon fichier de la sorte afin d'echapper ma côte ' pour des INSERT sql en utilisant la syntaxe E''(je ne sais pas encore exactement la bonne syntaxe) :
name='LE'''immobilier'
name='lE'''occitan'
name='CapE'''horn'
name='CAPE'''Horn'
J'ai essayé cela avec SED :
sed -e "s/[a-zA-Z]'/E'''/g" fichier
mais cela ne fonctionne pas correctement.
Une idée?
Merci
A voir également:
- Formater un fichier avec SED
- Fichier bin - Guide
- Comment réduire la taille d'un fichier - Guide
- Comment ouvrir un fichier epub ? - Guide
- Comment formater un pc - Guide
- Fichier rar - Guide
4 réponses
Salut,
;-))
$ cat plop name='L'immobilier' name='l'occitan' name='Cap'horn' name='CAP'Horn' $ sed "s/'/E\"&/2" plop name='LE"'immobilier' name='lE"'occitan' name='CapE"'horn' name='CAPE"'Horn'
;-))
Merci zipe31 . Tu peux juste m'expliquer a quoi correspond &/2 ?
Le & est le méta caractère qui sert à reprendre la totalité du motif recherché dans la 1ère partie de la substitution. Ça évite de tout récrire. Ici ce n'était pas bien long (une quote simple) mais des fois c'est très appréciable ;-))
Quand au "2", ça demande de ne remplacer que la 2ème occurrence du motif recherché. Donc on n'effectue une substitution que sur la 2nd quote simple rencontrée.
Voir dans la FAQ sur "sed" tout ça y est expliqué ;-))
SED - Le méta-caractère "&"
SED - Les flags (Nième occurrence)
Quand au "2", ça demande de ne remplacer que la 2ème occurrence du motif recherché. Donc on n'effectue une substitution que sur la 2nd quote simple rencontrée.
Voir dans la FAQ sur "sed" tout ça y est expliqué ;-))
SED - Le méta-caractère "&"
SED - Les flags (Nième occurrence)
Ok Merci beaucoup. Mais de la j'ai une interrogation car si j'ai mes lignes a inserer de la sorte :
insert into (bla,bla,bla) values ('1','jkl','L'immobilier');
ou bien
insert into (bla,bla,bla,bla,bla) values ('1','jkl','hui','L'immobilier','cap'horn');
je ne peux pas utiliser &/2 ?
De plus et je suis coupable le formatage que je dois avoir est :
name=E'L\'immobilier'
name=E'Cap\'horn'
et non
name='LE"'immobilier'
name='CapE"'horn'
Merci
L'accès au savoir est la première liberté que chaque homme devrait avoir.
insert into (bla,bla,bla) values ('1','jkl','L'immobilier');
ou bien
insert into (bla,bla,bla,bla,bla) values ('1','jkl','hui','L'immobilier','cap'horn');
je ne peux pas utiliser &/2 ?
De plus et je suis coupable le formatage que je dois avoir est :
name=E'L\'immobilier'
name=E'Cap\'horn'
et non
name='LE"'immobilier'
name='CapE"'horn'
Merci
L'accès au savoir est la première liberté que chaque homme devrait avoir.