Löschen mehrerer Dateien mithilfe von regulären ausdrücken
Löschen mehrerer Dateien mithilfe von regulären ausdrücken
Hallo!
Wie kann ich bei Lazarus mehrere bestimmte Dateien auf einmal Löschen? In meinem konkreten Beispiel muss ich alle Dateien Löschen, die einen "_" im Dateinamen aufweisen.
Ich hatte zuerst überlegt TProcess zur Hilfe zu nehmen und einfach "rm *_*" (Ich nutze Ubuntu als Plattform, das wäre also der entsprechende Shellbefehl) ausführen zu lassen, aber das klappt irgendwie nicht.
Vielen Dank
Karkov
Wie kann ich bei Lazarus mehrere bestimmte Dateien auf einmal Löschen? In meinem konkreten Beispiel muss ich alle Dateien Löschen, die einen "_" im Dateinamen aufweisen.
Ich hatte zuerst überlegt TProcess zur Hilfe zu nehmen und einfach "rm *_*" (Ich nutze Ubuntu als Plattform, das wäre also der entsprechende Shellbefehl) ausführen zu lassen, aber das klappt irgendwie nicht.
Vielen Dank
Karkov
Re: Löschen mehrerer Dateien mithilfe von regulären ausdrücken
Das klappt nicht, weil es eben ein Shell Befehl ist. TProcess ruft noch keine Shell auf. Du könntest aber ein Shell Skript (*.sh) basteln und dieses aufrufen.karkov hat geschrieben: Wie kann ich bei Lazarus mehrere bestimmte Dateien auf einmal Löschen? In meinem konkreten Beispiel muss ich alle Dateien Löschen, die einen "_" im Dateinamen aufweisen.
Ich hatte zuerst überlegt TProcess zur Hilfe zu nehmen und einfach "rm *_*" (Ich nutze Ubuntu als Plattform, das wäre also der entsprechende Shellbefehl) ausführen zu lassen, aber das klappt irgendwie nicht.
Ansonsten mit FindFirst/FindNext und DeleteFile arbeiten. Um ein "_" zu finden reicht die Funktion Pos. Regex braucht's dazu nicht.
-
- Lazarusforum e. V.
- Beiträge: 3178
- Registriert: Di 22. Jul 2008, 19:27
- OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
- CPU-Target: 32bit x86 armhf
- Wohnort: Köln
- Kontaktdaten:
Re: Löschen mehrerer Dateien mithilfe von regulären ausdrücken
Ich habe auf meinem Debian Lenny eine /usr/rm, die man meiner Meinung nach auch mit TProcess aufrufen können müsste. Mit einem "klappt irgendwie nicht" kann aber auch meine Glaskugel nichts anfangentheo hat geschrieben:Das klappt nicht, weil es eben ein Shell Befehl ist. TProcess ruft noch keine Shell auf. Du könntest aber ein Shell Skript (*.sh) basteln und dieses aufrufen.karkov hat geschrieben: Wie kann ich bei Lazarus mehrere bestimmte Dateien auf einmal Löschen? In meinem konkreten Beispiel muss ich alle Dateien Löschen, die einen "_" im Dateinamen aufweisen.
Ich hatte zuerst überlegt TProcess zur Hilfe zu nehmen und einfach "rm *_*" (Ich nutze Ubuntu als Plattform, das wäre also der entsprechende Shellbefehl) ausführen zu lassen, aber das klappt irgendwie nicht.
Ansonsten mit FindFirst/FindNext und DeleteFile arbeiten. Um ein "_" zu finden reicht die Funktion Pos. Regex braucht's dazu nicht.

Warum ein Shell-Script schreiben, wenn man die Shell auch direkt aufrufen kann?
Code: Alles auswählen
bash -c rm *_*
# oder alternativ über stdin
# muss nur mit TProcess entsprechend umgesetzt werden
# ACHTUNG: die Sternchen (*) werden, wenn in der Shell eingegeben, ersetzt
echo "rm *_*" | bash -s
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
-
- Lazarusforum e. V.
- Beiträge: 7192
- Registriert: So 19. Nov 2006, 12:06
- OS, Lazarus, FPC: Linux Mint 19.3
- CPU-Target: AMD
- Wohnort: Oldenburg(Oldenburg)
Re: Löschen mehrerer Dateien mithilfe von regulären ausdrücken
Warum nicht einfach selbst eine Funktion mit Hilf von FindFile, FindNext erstellen ? bzw. TSearch aus der unit fileutilitis(oder so 'ähnlich).
Löschen tust du dann mit DeleteFile(DateiNamen)
Löschen tust du dann mit DeleteFile(DateiNamen)
MFG
Michael Springwald
Michael Springwald
-
- Beiträge: 512
- Registriert: Mo 25. Aug 2008, 18:17
- OS, Lazarus, FPC: ArchLinux x86, WinVista x86-64, Lazarus 0.9.29, FPC 2.4.1
- CPU-Target: x86
- Wohnort: Chemnitz
Re: Löschen mehrerer Dateien mithilfe von regulären ausdrücken
Genau das hat theo zwei Posts über dir vorgeschlagen ............pluto hat geschrieben:Warum nicht einfach selbst eine Funktion mit Hilf von FindFile, FindNext erstellen ? bzw. TSearch aus der unit fileutilitis(oder so 'ähnlich).
Löschen tust du dann mit DeleteFile(DateiNamen)

-
- Lazarusforum e. V.
- Beiträge: 7192
- Registriert: So 19. Nov 2006, 12:06
- OS, Lazarus, FPC: Linux Mint 19.3
- CPU-Target: AMD
- Wohnort: Oldenburg(Oldenburg)
Re: Löschen mehrerer Dateien mithilfe von regulären ausdrücken
Ja, aber auf eine Andere Art und weise *G* und Doppelt hält im allgemeinen besser.
MFG
Michael Springwald
Michael Springwald
-
- Lazarusforum e. V.
- Beiträge: 3178
- Registriert: Di 22. Jul 2008, 19:27
- OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
- CPU-Target: 32bit x86 armhf
- Wohnort: Köln
- Kontaktdaten:
Re: Löschen mehrerer Dateien mithilfe von regulären ausdrücken
zwei mal löschen geht nicht ... aber überschreibenpluto hat geschrieben:Ja, aber auf eine Andere Art und weise *G* und Doppelt hält im allgemeinen besser.

MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
-
- Lazarusforum e. V.
- Beiträge: 7192
- Registriert: So 19. Nov 2006, 12:06
- OS, Lazarus, FPC: Linux Mint 19.3
- CPU-Target: AMD
- Wohnort: Oldenburg(Oldenburg)
Re: Löschen mehrerer Dateien mithilfe von regulären ausdrücken
warum nicht ? Einmal in den "Papierkorb" und einmal "Richtig"zwei mal löschen geht nicht ... aber überschreiben
MFG
Michael Springwald
Michael Springwald
-
- Lazarusforum e. V.
- Beiträge: 3178
- Registriert: Di 22. Jul 2008, 19:27
- OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
- CPU-Target: 32bit x86 armhf
- Wohnort: Köln
- Kontaktdaten:
Re: Löschen mehrerer Dateien mithilfe von regulären ausdrücken
Den Papierkorb sehe ich nicht als löschen an sondern eher als Zwischenablage für Dateien, bei denen man sich nicht sicher ist, ob man sie nochmal braucht.
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein