staging.inyokaproject.org

zip-Archiv ist leer

Status: Gelöst | Ubuntu-Version: Xubuntu 22.04 (Jammy Jellyfish)
Antworten |

humanoid1

Anmeldungsdatum:
15. März 2022

Beiträge: Zähle...

Guten Abend an die freundliche und gedultige Ubuntu-Gemeinschaft. Bei dem Versuch ein Script zu bauen das Inhalte von odt-Dateien manipuliert/korrigiert bin ich auf ein Hinderniss gestoßen.

In diesem Script, wird Eine odt-Datei entpackt Die content.xml bearbeitet Und das Ganze wieder zusammengefügt zur odt-Datei

Alles funktioniert, nur leider die letzte Zeile nicht.

1
2
3
4
5
6
#!/bin/sh
unzip /home/user1/Schreibtisch/sed-test.odt -d /home/user1/zip/sed-test/ 
cd /home/user1/zip/sed-test/ 
sed -i 's|HAUS|Wand|g; s|Mäuse|Vögel|g; s|Musterfrau|Models |g' content.xml 
cd /home/user1/zip/
zip sed-test.odt sed-test/ 

Später wollte ich das Script noch ausdehnen, so dass mehrere odt-Dateien, also mit wildcard "*.odt" nacheinander bearbeitet werden können, doch das scheint noch ein weiter Weg zu sein ☺

So, ich hoffe alle Foren-Regeln beachtet zu haben.

dingsbums

Anmeldungsdatum:
13. November 2010

Beiträge: 3793

~$ zip -r ordner.zip ordner
  adding: ordner/ (stored 0%)
  adding: ordner/datei (stored 0%)

von.wert

Anmeldungsdatum:
23. Dezember 2020

Beiträge: 12281

humanoid1 schrieb:

s|Musterfrau|Models |g'

😀

In sed-test/ stehend:

1
zip ../sed-test_edited.odt -rm *

Rekursiv (für die Verzeichnisse) und danach Löschen der extrahierten Verzeichnisse/Dateien.

humanoid1

(Themenstarter)

Anmeldungsdatum:
15. März 2022

Beiträge: Zähle...

Danke @dingsbums. Aber dann ist erzwar nicht leer, hat aber durch die Option -r den "Ordner" und nicht den bloßen "Inhalt" gepackt und ist so nicht als odt-Datei nutzbar.

Bilder

von.wert

Anmeldungsdatum:
23. Dezember 2020

Beiträge: 12281

humanoid1 schrieb:

Danke @dingsbums. (...) den "Ordner" und nicht den bloßen "Inhalt" gepackt

Deshalb in meinem Post noch hinzugefügt (das habe ich hier natürlich so durchgezogen, auch eine entsprechende Ersetzung).

humanoid1

(Themenstarter)

Anmeldungsdatum:
15. März 2022

Beiträge: 41

Danke @von.wert. Das ist schön, das in einer zukünftigen Schleife für mehrere odt-Dokumente die Quelle gleich eliminiert wird, um das nächste Dokument abzuarbeiten. Aber das Problem statt dem gewünschtem "Inhalt" des Ordners leider den "Ordner" als odt-Dokument von zip zu erhalten bleibt. Schade.

Eventuell, war ich missverständlich. Ein odt-Dokument benötigt lediglich den Inhalt des Ordner sed-test.

von.wert

Anmeldungsdatum:
23. Dezember 2020

Beiträge: 12281

humanoid1 schrieb:

Aber das Problem statt dem gewünschtem "Inhalt" des Ordners leider den "Ordner" als odt-Dokument von zip zu erhalten bleibt. Schade.

Nein, das bleibt nicht. Du mußt in "/home/user1/zip/sed-test/" 'reingehen.

Eventuell, war ich missverständlich. Ein odt-Dokument benötigt lediglich den Inhalt des Ordner sed-test.

Für mich nicht. Ich bin von vornherein in das Verzeichnis gegangen, da ich das weiß (den Aufbau kenne) und selbstredend auch ausprobiert habe.

humanoid1

(Themenstarter)

Anmeldungsdatum:
15. März 2022

Beiträge: 41

Ja und es war richtig streng zu sein von.wert, dass der Pfad nicht bis zu Ende gegangen wurde. Es funktioniert! Trotzdem wundert es mich, dass die Option -r nicht benötigt wurde, obwohl ja eben auch Verzeichnisse enthaltet sind. Denn das hatte schon ganz am Anfang des Scripts verwirrt, eben das heraus zu bekommen ☺

humanoid1

(Themenstarter)

Anmeldungsdatum:
15. März 2022

Beiträge: 41

Also, so weit haben wir es gebracht.

#!/bin/sh
et1=odt
et2=xml
unzip /home/user1/Schreibtisch/sed-test.$et1 -d /home/user1/zip/sed-test/ 
cd /home/user1/zip/sed-test/ 
sed -i 's|HAUS|Wand|g; s|Mäuse|Vögel|g; s|Musterfrau|Models |g' content.$et2 
cd /home/user1/zip/sed-test
zip /home/user1/zip/sed-test_edited.odt -rm *

Nun, jetzt habe ich schon variablen mit eingebaut, aber wie das mal als Schleife endet, weiß ich noch nicht. Trotzdem, DANKE, dass dieser Schritt bisher gelungen war.

Antworten |