Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

sed ou tr

6 réponses
Avatar
Bernard Schoenacker
bonjour,

je recherche le moyen de supprimer le caractère "/" avec sed et
obtenir un espace, j'ai essayé avec tr -d / file.txt mais je perd
l'espace

voici un extrait à traiter de file.txt :

math/coinmp
x11-fonts/gentium-basic
net/GeoIP
graphics/ImageMagick
devel/ORBit2
graphics/OpenEXR
security/openssh-askpass
x11-fm/thunar
print/a2ps


avec tr -d / j'obtiens ceci :

mathcoinmp
x11-fontsgentium-basic
netGeoIP
graphicsImageMagick
develORBit2

et je souhaiterai obtenir:

math coinmp
x11-fonts gentium-basic
net GeoIP
graphics ImageMagick

comment corriger le tir ?

slt
bernard

6 réponses

Avatar
cedric rousselot
Bonjour,
vous pouvez essayer:
sed 's/// /g' file.txt

Si le resultat vous convient vous pouvez le faire dans le fichier:
sed -i 's/// /g' file.txt

Cordialement,
Cedric rousselot.

Le Fri, 8 Jan 2016 17:44:22 +0100,
Bernard Schoenacker a écrit :

bonjour,

je recherche le moyen de supprimer le caractère "/" avec sed et
obtenir un espace, j'ai essayé avec tr -d / file.txt mais je perd
l'espace

voici un extrait à traiter de file.txt :

math/coinmp
x11-fonts/gentium-basic
net/GeoIP
graphics/ImageMagick
devel/ORBit2
graphics/OpenEXR
security/openssh-askpass
x11-fm/thunar
print/a2ps


avec tr -d / j'obtiens ceci :

mathcoinmp
x11-fontsgentium-basic
netGeoIP
graphicsImageMagick
develORBit2

et je souhaiterai obtenir:

math coinmp
x11-fonts gentium-basic
net GeoIP
graphics ImageMagick

comment corriger le tir ?

slt
bernard

Avatar
VieuxGeek DuSystem
Bonjour

Avec vim dans le fichier originale

la commande est '%s/// /g'

Cordialement
et bon weekend
Stef

Le 8 janvier 2016 à 17:44, Bernard Schoenacker
a écrit :
bonjour,

je recherche le moyen de supprimer le caractère "/" avec sed et
obtenir un espace, j'ai essayé avec tr -d / file.txt mais je perd
l'espace

voici un extrait à traiter de file.txt :

math/coinmp
x11-fonts/gentium-basic
net/GeoIP
graphics/ImageMagick
devel/ORBit2
graphics/OpenEXR
security/openssh-askpass
x11-fm/thunar
print/a2ps


avec tr -d / j'obtiens ceci :

mathcoinmp
x11-fontsgentium-basic
netGeoIP
graphicsImageMagick
develORBit2

et je souhaiterai obtenir:

math coinmp
x11-fonts gentium-basic
net GeoIP
graphics ImageMagick

comment corriger le tir ?

slt
bernard

Avatar
Bernard Schoenacker
Le Fri, 8 Jan 2016 17:52:27 +0100,
cedric rousselot a écrit :

Bonjour,
vous pouvez essayer:
sed 's/// /g' file.txt

Si le resultat vous convient vous pouvez le faire dans le fichier:
sed -i 's/// /g' file.txt

Cordialement,
Cedric rousselot.



bonjour,

la première solution fonctionne à merveille

slt
bernard
Avatar
Francois Lafont
Bonsoir,

On 08/01/2016 17:52, cedric rousselot wrote:

vous pouvez essayer:
sed 's/// /g' file.txt

Si le resultat vous convient vous pouvez le faire dans le fichier:
sed -i 's/// /g' file.txt



Juste pour info, si jamais le caractère « / » est utilisé dans les regex voire utilisé souvent (typiquement pour des chemins de fichiers etc.), alors plutôt que d'échapper chaque caractère « / » avec un backslash, sed nous permet d'utiliser un autre délimiteur que « / ». En fait, on peut choisir plus ou moins le délimiteur qu'on veut. Par exemples :

sed 's|/| |g' file.txt
sed 's#/# #g' file.txt

Et bien sûr dans ce cas, on n'est plus obligé d'échapper nos « / ». Voilà, c'était juste pour info. ;)
Et sinon effectivement tr -d '/' se contente de supprimer les « / » comme l'indique sa page man (enfin j'imagine).

À+

--
François Lafont
Avatar
Daniel Caillibaud
Le 08/01/16 à 17:44, Bernard Schoenacker a écrit :
BS> bonjour,
BS>
BS> je recherche le moyen de supprimer le caractère "/" avec sed et
BS> obtenir un espace, j'ai essayé avec tr -d / file.txt mais je perd
BS> l'espace

avec tr essaie plutôt
tr / ' ' < file.txt

tr semble plus indiqué que sed dans un cas aussi simple, (même si on se moque un peu des perfs
ici) mais le meilleur outil reste celui que tu maîtrises bien.

--
Daniel
Avatar
Bernard Schoenacker
Le Fri, 8 Jan 2016 18:48:39 +0100,
Daniel Caillibaud a écrit :

tr / ' ' <



bonjour,

merci pour le tuyau pour tr

slt
bernard