2 Stimmen

Shell: Ersetzen eines Teils eines Textes durch den gespeicherten Variablenwert

Ich habe einen Wert per Shell-Befehl gespeichert: Zum Beispiel:

timeoutvalue=`echo "timeout=2.0"`

Und ich muss den Wert von timeout aus einem anderen Text auslesen und ihn durch diesen timeout-Wert ersetzen. Zum Beispiel ist der Text egtest:

<host ip="255.255.255.0" name="testhost" description="hostfortest" connection="xmlrpc" timeout=4.0/>

Ich möchte den Wert von timeout aus dem obigen Text auslesen und durch den Wert von timeout=4.0 por timeout=2.0 (der Wert, den ich per Shell-Befehl als Variable gespeichert habe).

Mein Problem ist: (1) für einen einfachen Test möchte ich den Wert von timeout=4.0 durch $timeoutvalue ersetzen. Mein Befehl lautet also:

sed 's/timeout=4.0/$timeoutvalue/g' egtext .

Aber es scheint der Text zu werden:

<host ip="255.255.255.0" name="testhost" description="hostfortest" connection="xmlrpc" $timeoutvalue/>

Kann mir jemand sagen, warum das falsch ist?

(2) Für dieses Problem muss ich zuerst grep timeout=4.0 aus dem Text, und ersetzen Sie den Wert 4.0 auf den gespeicherten Variablenwert (in meinem Beispiel: 2.0). Ich dachte, aber ich weiß nicht, welchen Befehl ich verwenden soll, um dies zu realisieren (awk? sed?) Weil das Feld des Textes nicht sicher ist, (z.B. in diesem Text ist timeout in $5 aber in einem anderen Text könnte es vielleicht in $6 ). Ich meine, es kann in geändert werden:

<host ip="255.255.255.0" name="testhost" description="hostfortest" connection="xmlrpc" type="onebox" timeout=4.0/>

Kann mir jemand dabei helfen?

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X