sed vraag nr zoveel

Pagina: 1
Acties:

  • relaxteb
  • Registratie: April 2002
  • Laatst online: 29-01 20:04
Hoi,

Ik heb echt flink lopen zoeken op t forum en de diverse google sites, maar ik kom er ff niet meer uit.
Wat ik wil ? een string aanpassen uit een config file.

De string is : TMPREAPER_DIRS='/tmp/.'
en moet vervangen worden door : TMPREAPER_DIRS='/tmp/. /opt/overig/.'

Nou daar begint het probleem al met de / en de '

Ik ben tot nu toe tot het volgende gekomen maar helaas werkt het niet :

sed -i 's/TMPREAPER_DIRS='/tmp/ / TMPREAPER_DIRS='/tmp/. /opt/overig/. /g' filename

Dit gaat niet werken, dus had ik bedacht een escape karakter ervoor te zetten :

sed -i 's/TMPREAPER_DIRS=\'\/tmp\//TMPREAPER_DIRS=\'\/tmp\/. \/opt\/overig\/. /g' filename

Helaas werkt dit ook niet, wie kan mij helpen ?

tnx

  • Boudewijn
  • Registratie: Februari 2004
  • Niet online

Boudewijn

omdat het kan

je kunt ook een | oid voor je commando gebruiken, mischien dat je daarmee de / kunt vervangen?

Zaram module kopen voor je glasvezelaansluiting?


  • relaxteb
  • Registratie: April 2002
  • Laatst online: 29-01 20:04
sed -i 's|TMPREAPER_DIRS='/tmp/|TMPREAPER_DIRS='/tmp/. /opt/overig/.|g' /tmp/tmpreaper.conf

werkt ook niet helaas....

  • Confusion
  • Registratie: April 2001
  • Laatst online: 01-03-2024

Confusion

Fallen from grace

De dot moet je ook escapen.

Wie trösten wir uns, die Mörder aller Mörder?


  • GX
  • Registratie: Augustus 2000
  • Laatst online: 14-05-2025

GX

Nee.

Je zal dan hoe dan ook nog je quotes moeten escapen. Door ineens een ander karakter gebruiken als regex boundary word niet magischerwijs je inhoud ook sh-proof.

  • u_nix_we_all
  • Registratie: Augustus 2002
  • Niet online
Waarom met sed ?

hint:
TMPREAPER_DIRS=$TMPREAPER_DIRS/opt/overig/.

:*)

Uh, of heb ik de vraag niet goed gelezen .....

[ Voor 24% gewijzigd door u_nix_we_all op 11-09-2007 15:03 ]

You don't need a parachute to go skydiving. You need a parachute to go skydiving twice.


  • relaxteb
  • Registratie: April 2002
  • Laatst online: 29-01 20:04
sed -i 's|TMPREAPER_DIRS=\'\/tmp\/\.|TMPREAPER_DIRS=\'\/tmp\/\. \/opt\/overig\/\.|g'

Hier is toch zon beetje alles escaped wat ik kan bedenken ?

  • frim
  • Registratie: Augustus 2001
  • Niet online
Het wordt wat makkelijker als je dubbele quotes gebruikt voor je sed
sed "s|TMPREAPER_DIRS='/tmp/.|TMPREAPER_DIRS='/tmp/\./opt/overig/\.|g"

  • relaxteb
  • Registratie: April 2002
  • Laatst online: 29-01 20:04
frim schreef op dinsdag 11 september 2007 @ 15:20:
Het wordt wat makkelijker als je dubbele quotes gebruikt voor je sed
sed "s|TMPREAPER_DIRS='/tmp/.|TMPREAPER_DIRS='/tmp/\./opt/overig/\.|g"
Dat werkt ! top !!

Maar wat ik nou niet snap is waarom je in de vervang string wel escape characters gebruikt voor de "." en in de zoekstring niet ? en ook niet voor de slashes ?

  • frim
  • Registratie: Augustus 2001
  • Niet online
slashes hoeven niet meer omdat je nu de | als separator gebruikt. de . hoort geescaped te zijn (foutje), maar werkt in dit geval ook omdat een . met alles matcht, dus ook een punt

  • relaxteb
  • Registratie: April 2002
  • Laatst online: 29-01 20:04
nogmaals bedankt !

  • DeMoN
  • Registratie: Maart 2001
  • Laatst online: 06-01 23:13

DeMoN

Pastafari

 sed s~'/tmp/'~'/tmp/. /opt/overig/'~


kortst :P

te laat dus, maar misschien wel leuk om te laten zien dat je dus ook de '~' als seperator kan gebruiken :)

[ Voor 58% gewijzigd door DeMoN op 11-09-2007 15:59 ]

Gamertag: Cosmicv0id
"Het woord Gods is voor mij niets meer dan een expressie en het product van menselijke zwakheid. De Bijbel is een verzamelwerk van legendes die achtenswaardig zijn maar ook primitief en kinderachtig.'' - Albert Einstein

Pagina: 1