nach einem String suchen und anschließend wert speichern

D

dreipapier__

Hallo zusammen,

ich, als Anfänger in Shellskripting stehe vor einer "Riesenaufgabe".

Ich habe es mit folgendem Fall zu tun:

ich leite einige Umgebungsvariablen mit folgendem Befehl in eine Datei um:

vmtoolsd --cmd 'info-get guestinfo.ovfEnv' > vmt

In dem File vmt, sind strings wonach ich suche. Dazu habe ich folgendes Array kreiert.

list=(dns1 dns2 ip gateway netmask) --> Also die Strings wonach ich in vmt suche sind dns1 dns2 usw.

Ich mache nun folgendes:
list=(dns1 dns2 ip gateway netmask)
vmtoolsd --cmd 'info-get guestinfo.ovfEnv' > vmt

for i in $(cat vmt);

if find "dns1" then save the value" 145.230.8.1...

Also ich versuche lediglich eine for schleife mit den strings welche ich in vmt suche zu kreieren und anschließend bei übereinstimmung gewisse werte zu speichern:

vmt sieht so aus:

$ cat vmt

<?xml version="1.0" encoding="UTF-8"?>

<Environment

xmlns="Index of /ovf/environment/1"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xmlnse="Index of /ovf/environment/1"

xmlns:ve="http://www.vmware.com/schema/ovfenv"

oe:id="">

<PlatformSection>

<Kind>VMware ESXi</Kind>

<Version>4.1.0</Version>

<Vendor>VMware, Inc.</Vendor>

<Locale>de</Locale>

</PlatformSection>

<PropertySection>

<Property oe:key="dns1" oe:value="145.230.8.1"/>

<Property oe:key="dns2" oe:value="145.230.8.1"/>

<Property oe:key="gateway" oe:value="145.230.8.254"/>

<Property oe:key="ip" oe:value="145.230.8.33"/>

<Property oe:key="netmask" oe:value="255.255.255.0"/>

</PropertySection>

<ve:EthernetAdapterSection>

<ve:Adapter ve:mac="00:50:56:84:00:0b" ve:network="NLSHOP_145.230.39.128-26"/>

</ve:EthernetAdapterSection>

</Environment>

Also wenn er in der ersten for schleife "dns1" im vmt findet, soll er bitte in die variable dns1 den wert 145.230.8.1 speichern.

Wenn mir jemand einen Lösungsweg aufschreiben könnte wäre ich ihm sehr dankbar!!!

dankeschön & grüße
 
Hallo,

probier es doch mal so:


Code:
dns1="`grep "dns1" vmt | awk -F '\"' '{print $4}'`"
echo $dns1

Weitere Info's -> man grep, man awk oder einfach mal googeln 'bash grep ip-adressen'

Gruss underliner
 

Ähnliche Themen

Rollei Mini Wifi Camcorder

dovecot und postfix Konfiguration Problem

CentOS 6.3 RADIUS - Keine Verbindung möglich

Router crash bei Fedora 15!?

HP PSC 2175 - CUPS druckt nicht

Zurück
Oben