Toon posts:

[SED] Variabelen lijken niet te werken.

Pagina: 1
Acties:

Verwijderd

Topicstarter
Dag dames en heren,

Ik heb een probleem met sed en ik kom er niet uit. Stel ik heb het volgende simpele bash scriptje:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
#!/bin/bash 

echo "geef volledige domein:" 
read DOMEIN_NAAM 
echo "geef voorvoegels van domein: " 
read SUBDOMEIN_NAAM 

echo $SUBDOMEIN_NAAM.$DOMEIN_NAAM

sed '/.$SUBDOMEIN_NAAM.$DOMEIN_NAAM/d' vhosts.conf >> vhosts.new.conf 
mv vhosts.conf vhosts.old 
rm -rf vhosts.old 
mv vhosts.new.conf vhosts.conf


Stel ik voer nu in:

domein.nl
en
test

dan krijg ik bij de uitvoer het volgende te zien: test.domein.nl. Dat is goed en heb ik nodig. Alleen werkt de sed expressie niet. Deze verwijdert niet de lijn test.domein.nl uit het bestand vhosts.conf terwijl als ik:

sed '/.test.domein.nl/d' vhosts.conf >> vhosts.new.conf

invoer dat wel gebeurd. Nu kan ik wel de work-a-round oplossing gebruiken:
code:
1
echo " sed '/.$SUBDOMEIN_NAAM.$DOMEIN_NAAM/d' vhosts.conf >> vhosts.new.conf " >> sed_expressie.sh


Maar dan moet ik dat bestand weer executable maken en weer uitvoeren in het script. Ikzelf vind het geen mooie oplossing. Het moet toch mogelijk zijn dat bash deze variabelen vervangt met de juiste woorden in de sed expressie?

[ Voor 9% gewijzigd door Verwijderd op 12-10-2004 20:42 . Reden: Extra informatie. ]


  • _JGC_
  • Registratie: Juli 2000
  • Laatst online: 01:45
Je probeert dus "grep -v" te doen met sed :P

Verder komt het nogal eens voor dat variabelen tussen enkele quotes gewoon letterlijk ingevoegd worden, probeer eens met dubbele quotes. Verder zie ik dat je met 2 bestanden werkt, je moved eerst je oude en vervolgens move je de nieuwe eroverheen, dit kan ook met 1 optie met "sed -i '/search/d' file"

Verwijderd

Topicstarter
_JGC_ schreef op 12 oktober 2004 @ 20:51:
Je probeert dus "grep -v" te doen met sed :P

Verder komt het nogal eens voor dat variabelen tussen enkele quotes gewoon letterlijk ingevoegd worden, probeer eens met dubbele quotes.
Hartelijk dank, ik heb nu officieel een half uur van mijn tijd verspilt omdat ik dacht dat ik de "" al had geprobeerd in plaats van ''. En laat "" nou net werken! Dankjewel.
Verder zie ik dat je met 2 bestanden werkt, je moved eerst je oude en vervolgens move je de nieuwe eroverheen, dit kan ook met 1 optie met "sed -i '/search/d' file"
Bedankt voor de tip maar sed geeft hier de melding dat de optie ''-i'' niet geimplenteerd is. (sed: invalid option -- i)

[ Voor 7% gewijzigd door Verwijderd op 12-10-2004 20:58 ]


  • _JGC_
  • Registratie: Juli 2000
  • Laatst online: 01:45
Heeft jouw sed geen --in-place optie?

edit: ah, is geintroduceerd in sed 4.x. Good old Debian woody heeft nog 3.x.x :P

[ Voor 54% gewijzigd door _JGC_ op 12-10-2004 21:16 ]


Verwijderd

Topicstarter
_JGC_ schreef op 12 oktober 2004 @ 21:14:
Heeft jouw sed geen --in-place optie?

edit: ah, is geintroduceerd in sed 4.x. Good old Debian woody heeft nog 3.x.x :P
Die optie is wel een nieuwe versie waardig. Dankjewel in ieder geval.