String bearbeitung

slaughter.j4ck

slaughter.j4ck

Mitglied
hallo,
hat jemand einen tipp wie ich einen teil eines srtings verändern kann? ich möchte zum beispiel einen teil des vorher gesuchten pfades verändern.
siehe:
disk = [ 'file:/.../.../.../..../vmsuseE10sp1/hda,hda,w', 'phy:/dev/hda,hdb,r' ]

zu:
disk = [ 'file:/../.../.../...../klon1/hda,hda,w', 'phy:/dev/hda,hdb,r' ]

dankbar für jede hilfe!!
mfg slaughter.j4ck
 
Was isn das fürn Shellscript mit [] ? Array gehen doch mit ( )! Führe mal weiter aus bitte
 
also: ich versuch ein skript zu schreiben mit dem ich virtuelle maschinen kopieren kann und das die ubenenneungen selber macht. was ich nun versuche ist den namen der VM (sthet in ner config) zu finden und die zeile zu beabrbeiten.
die zeile hab ich mir mit fgrep anzeigen lassen (siehe oben) und suche nun einen befehl zum bearbeiten. die string options befehle habe ich schon aus probiert, funktionieren aber nicht richtig :( gibts noch andere?

danke für alle hilfe

slaughter.j4ck
 
'file:/.../.../.../..../vmsuseE10sp1/hda,hda,w'
soll danach
'file:/../.../.../...../klon1/hda,hda,w'
sein?

disk="[ 'file:/.../.../.../..../vmsuseE10sp1/hda,hda,w', 'phy:/dev/hda,hdb,r' ]"
sed "s/vmsuseE10sp1/klon1/" <<< "$disk"
bzw:
for ((x=1;x<10;x++)); do sed "s/vmsuseE10sp1/klon${x}/" <<< "$disk"; done;
sed "s/vmsuseE10sp1/klon${x]/" <<< "$disk"
 
Zuletzt bearbeitet:
kurze zwischen frage:
was macht eigentlich "<<<" ? und geht auch ">>>" ?
 
<<< liest die Variable/String ein für die sed-Operation.
 
Erklär mir mal bitte, wie du darauf kommst.
Ich kann hier nix von 10 Zeilen lesen.
for ((x=1;x<10;x++)); ....

Wenn der Pfadtei eindeutig ist, geht das so in Ordnung.
Sonst musst du den gesamten Pfad suchen und dabei günstigerweise einen anderen Trenner für die Ersetzung verwenden, um die Slash nicht escapen zum müssen.

Gruß Wolfgang
 
danke!
habe mich über sed schlau gemacht und das so glöst:
sed -e "/^name = / c \name = '$vm1'" -e "/^vif = / c \vif = \[ 'mac=01:00:00:00:00:02' \]" -e "/^disk = / c \disk = \[ 'file:${pfad1}${vm1}${rest1}" /etc/xen/vm/pool/$vmsource > /etc/xen/vm/$targetname

(habe gleich 3 manipulationen gemacht,,,, (deswegen -e)

mfg slaughter.j4ck
 
Erklär mir mal bitte, wie du darauf kommst.
Ich kann hier nix von 10 Zeilen lesen.


Wenn der Pfadtei eindeutig ist, geht das so in Ordnung.
Sonst musst du den gesamten Pfad suchen und dabei günstigerweise einen anderen Trenner für die Ersetzung verwenden, um die Slash nicht escapen zum müssen.

Gruß Wolfgang


Nicht so echauffiert der feine Herr. Ich habe einfach mal angenommen, dass er vllt. 10 Maschinen hat, nur zu Demonstrationszwecken :P
.
.
.
EDIT (autom. Beitragszusammenführung) :
.

danke!
(habe gleich 3 manipulationen gemacht,,,, (deswegen -e)

Sinnfrei, geht auch ohne -e.
 
Zuletzt bearbeitet:

Ähnliche Themen

openSuse 11.4 und 12.1 als Gast in XEN

Datei einlesen, veränder und ausgeben mit AWK

/dev/hdc[1..x] verschwindet nach reboot

NagiosGrapher 1.7.1 funktioniert nicht

WINEMANAGER - Ein Tool zum Verwalten von WINE [BETA]

Zurück
Oben