Suppression d'un slash entre single quote

Résolu
Ka-El Messages postés 279 Statut Membre -  
Ka-El Messages postés 279 Statut Membre -
Bonjour,
Je dispose d'un fichier "test.txt" qui est composé de la ligne suivante:
NAME='/',

Mon objectif est de supprimer le slash qui se trouve entre les singles quotes, soit:
NAME=' ',

Pour l'instant, j'ai testé la commande suivante, mais ça ne marche pas:
sed -i 's/NAME=\'/',/NAME='',/g' test.txt

Pourriez-vous svp m'apporter votre aide ?
Merci

2 réponses

jordane45 Messages postés 40050 Statut Modérateur 4 757
 
Bonjour
Faut sûrement mettre in back slash devant ton slash dans la regex
0
Ka-El Messages postés 279 Statut Membre
 
Bonjour Jordane,
j'ai essayé:
sed -i 's/NAME=\'\/',/NAME='',/g' test.txt

Mais ça ne fonctionne pas non plus...
0
zipe31 Messages postés 38797 Statut Contributeur 6 433
 
Salut,

Il faut remplacer le délimiteur par défaut (le slash "/") par un caractère qu'on ne risque pas de rencontrer dans la cible recherchée, comme le croisillon (#) :

$ cat fich 
blabla='xxx/xxx/xxx'
NAME='/',
VAR='/mon/chemin/à/moi'



$ sed '/NAME/{s#/##}' fich 
blabla='xxx/xxx/xxx'
NAME='',
VAR='/mon/chemin/à/moi'


Sinon, on ne met l'option "-i" qu'une fois qu'on est sûr de sa syntaxe ! ;-(


0
Ka-El Messages postés 279 Statut Membre
 
Merci zipe31, effectivement ta suggestion fonctionne.
En revanche, si je souhaite faire un remplacement, comment devrais-je procéder ?
Par exemple, si je veux de ça:
$ cat fich 
blabla='xxx/xxx/xxx'
NAME='/',
VAR='/mon/chemin/à/moi'


Aboutir à ça:
$ cat fich 
blabla='xxx/xxx/xxx'
NAME='TOTO',
VAR='/mon/chemin/à/moi'


Merci d'avance pour ton aide :-)
0
zipe31 Messages postés 38797 Statut Contributeur 6 433 > Ka-El Messages postés 279 Statut Membre
 
$ sed '/NAME/{s#/#TOTO#}' fich 
blabla='xxx/xxx/xxx'
NAME='TOTO',
VAR='/mon/chemin/à/moi'
0
Ka-El Messages postés 279 Statut Membre
 
Nickel ! :-)
Par contre, comment on fait pour faire la modification directement dans le fichier "fich" ? (désolé je ne suis pas une flèche en shell...)
0
zipe31 Messages postés 38797 Statut Contributeur 6 433 > Ka-El Messages postés 279 Statut Membre
 
Tu rajoutes l'option "-i" :
sed -i '/NAME/{s#/#TOTO#}' fich
0
Ka-El Messages postés 279 Statut Membre
 
Excellent ! merci beaucoup :-)
0