pacmexx schrieb:
Hallo,
kann mir bitte jemand zeigen wie so etwas geht.
Zip-Dateien wurden mit Namen erstellt und im Nachgang umbenannt. Zur weiteren Verarbeitung per Script benötige ich jedoch den
ursprünglich verwendeten Namen bei Erstellung der Datei (zip -sf). Die Ausgabe enthält weit mehr als ich benötige und möchte deshalb den relevanten Teilstring extrahieren. (wollen vs. können ☺)
# Ermitteln ursprl. Dateiname bei Erstellung der zip-Datei / FileStr=$(zip -sf $*)
FileStr="Archive contains: BlaBlupp.img Bla bla bla"
ContrStr='sed -r s/vodoo/magic' < $FileStr
echo $ContrStr ---> BlaBlupp.img
Ich hab's nicht verstanden, aber 2 Mindeständerungen meine ich trotzdem empfehlen zu können.
ContrStr=$(sed -r s/vodoo/magic/ < $FileStr)
Je nach Inhalt von voodoo und magic wirst Du doppelte Anführungsstriche um den Befehl für sed benötigen, vielleicht auch einfache.
ContrStr=$(sed -r "s/vodoo/magic/" < $FileStr)
Jetzt sehe ich, dass $FileStr einen Text mit Leerzeichen enthält, womöglich keinen Dateinamen. Wäre es ein Dateiname in dem Text steht, der von Sed verarztet werden soll, dann wäre es aber:
ContrStr=$(sed -r "s/vodoo/magic/" "$FileStr")
denn Sed erwartet quasi, dass man ihm Dateien nennt, die zu bearbeiten sind. Will man aber den Inhalt der Variablen selbst modifizieren, dann geht es so:
ContrStr=$(echo "$FileStr" | sed -r "s/vodoo/magic/")