Sie sind nicht angemeldet.

Lieber Besucher, herzlich willkommen bei: Ubuntu-Forum & Kubuntu-Forum | www.Ubuntu-Forum.de. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

  • »MarcelF6« ist der Autor dieses Themas

Beiträge: 7

Registrierungsdatum: 12.08.2013

Derivat: Ubuntu

Architektur: 32-Bit PC

  • Nachricht senden

1

31.05.2014, 10:25

Skript für alle Files in einem Directory ausführen

Hallo miteinander,

ich habe ein Programm, das ich via Terminal so ausführe:

Zitat

./process -k /home/usr/file
Da ich ungefähr 100 Dateien habe, wäre es sinnlos, jede von Hand einzugeben, Gibt es eine Möglichkeit, jede Datei dort einzusetzten (und zwar so, dass die neue Datei erst bearbeitet wird, wenn die vorherige Datei fertig bearbeitet wurde)?

Ich dachte an etwas wie:

Zitat

for file in directory:
./process -k /home/usr/file


Vielen Dank für jeden Hinweis!

  • »maettu« ist männlich

Beiträge: 3 299

Registrierungsdatum: 14.09.2005

Derivat: Xubuntu

Architektur: 64-Bit PC

Desktop: XFCE

  • Nachricht senden

2

31.05.2014, 10:53

Du kannst im Prinzip den "*" nehmen, nur musst du halt aufpassen. Im Prinzip sowas:

Quellcode

1
./process -k /home/usr/Verzeichnis/mit/Dateien/*

Bitte aber zuerst eine Sicherung der Daten machen!! Es kann immer was falsches passieren!

Was mach den dieses Skript? Schreibt es Resultate in eine andere Datei?
Warum muss alles nacheinander abgearbeitet werden? Gibt es eine Reihenfolge in der die Daten abgearbeitet werden müssen?

  • »MarcelF6« ist der Autor dieses Themas

Beiträge: 7

Registrierungsdatum: 12.08.2013

Derivat: Ubuntu

Architektur: 32-Bit PC

  • Nachricht senden

3

31.05.2014, 10:58

Das Skript nimmt die Datei (html), analysiert jedes Wort darin und schaut, ob Personennamen vorkommen. Dann wird alles in einem neuen XML-File zusammengefasst und in einem anderen Directory gespeichert.
Wieso nacheinander? : Weil das Skript auf Daten wie eine Personenliste (usw.) zugreift. Der Zugriff kann aber irgendwie nur jeweils einzeln erfolgen, sonst erhalte ich tracebacks mit dem Fehler, dass die database locked ist...

Gäbe es noch eine Alternative zum " * "? Den habe ich schon probiert - da ist eben der obige Fehler aufgetaucht.
Aber ich probiers gleich nochmals :)

  • »maettu« ist männlich

Beiträge: 3 299

Registrierungsdatum: 14.09.2005

Derivat: Xubuntu

Architektur: 64-Bit PC

Desktop: XFCE

  • Nachricht senden

4

31.05.2014, 11:20

Wieso teilst du dann nicht mit was du schon probiert hast?

Du schreibst/liest in eine Datenbank, da diese aber sehr wahrscheinlich nur eine begrenzte Anzahl Verbindungen erlaubt gibt es da wohl Probleme.

Die Frage ist jetzt ob du einfach via for-Loop und etwas "warten" das Skript einzeln ausführen willst. Gut du bist aber auch nicht sicher ob die "Wartezeit" genügt.
Oder du arbeitest mit ProcessManagment der Bash, dann müsstest du aber wohl ober übel das ganze Skript anpassen. Keine Ahnung wie gut das Processmanagment dann entsprechend mit Datenbankverbindungen arbeitet.

PS: Ich würde noch überprüfen, ob du die Datenbank nach beenden des Skriptes wieder ordentlich schliesst.

Soni

User

Beiträge: 204

Registrierungsdatum: 13.12.2009

Derivat: Kein Ubuntu-Derivat

Architektur: 64-Bit PC

  • Nachricht senden

5

31.05.2014, 22:35

Wenns es nur html files sind reicht doch ein

Quellcode

1
find /mein/mega/verzeichnis -name "*.html" -exec /mein/mega/skript {} \;
, oder etwa nicht?

Zitat von ».user«

doch, die ganze Welt besteht aus fenstern!