Zum Inhalt springen

Sed und Variabeln $


Empfohlene Beiträge

Geschrieben

Hi,

kleines Problem:

/bin/sed -n -e "s/\(^[a-zA-Z]*\):$VAR:N$/\1/gp" /etc/test

funtkioniert nicht -> Unknown option to `s'

Wie kann ich eine Env Variable einfügen?

Beim googeln hatten die alle ' statt ". Das ist bei mir nicht der Fall.

Gruß Scratch

Geschrieben

Mit single-quotes dürfte es auch nicht gehen, weil dann die Variablen nicht von der shell expandiert werden.

Ich kann den Fehler jedoch nicht nachvollziehen.

sed-Version?

Wie sieht /etc/test aus und was willst du Substituieren?

Was ist der Wert deiner Variable?

user@host:~> cat testfile.txt

foo:bar

blubb:omg

k:thxbye

bar:foo

user@host:~> VALUE=omg; sed -e 's/^\([a-zA-Z]*\):$VALUE$/\1/g' testfile.txt

foo:bar

blubb:omg

k:thxbye

bar:foo

Single-Quotes tun nicht, weil hier nach $VALUE gesucht wird, nicht nach dem Inhalt der Variable VALUE

user@host:~> VALUE=omg; sed -e "s/^\([a-zA-Z]*\):$VALUE$/\1/g" testfile.txt

foo:bar

blubb

k:thxbye

bar:foo

Tut, weil hier die Shell $VALUE erst auswerted und dann an sed gibt.

Geschrieben

Hi,

der Befehl lautet genau:

/bin/sed -n -e "s/^\([a-zA-Z]*\):$ORACLE\_HOME:N/\1/gp" /etc/oratab

die sed Version ist: 4.0.7

# echo $ORACLE_HOME

/opt/app/oracle/product/inf904

/etc/oratab

*:/opt/app/oracle/product/inf904:N

iasdb:/opt/app/oracle/product/inf904:N

Der Fehler ist:

/bin/sed: -e expression #1, char 23: Unknown option to `s'

Gruß Scratch

Geschrieben

...

Natürlich geht das nicht

Der Wert deiner Variable enthält Slashes. Die musst du schon escapen, weil sie sonst sed interpretiert.

Mit

ORACLE_HOME=/opt/app/oracle/product/inf904

wird aus deinem Command:

/bin/sed -n -e "s/^\([a-zA-Z]*\):/opt/app/oracle/product/inf904:N/\1/gp" /etc/oratab

und das sind ein paar zuviel /// für sed.

Weich auf alternative Trenner aus oder escape die /'s im OraPath durch \/

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...