Alle bis auf n Dateien markieren
Moderators: Hacker, Stefan2, white
Alle bis auf n Dateien markieren
Moin zusammen,
ich habe diverse Ordner mit jeweils mehreren 100 Dateien.
Ich möchte innerhalb eines Ordners (oder später über mehrere Ordner hinweg) alle bis auf die ersten 10, 50 oder 100 Dateien löschen.
Alle Dateien sind am Ende mit 5-stelligen aufsteigenden Zähler benannt. Z.B.
Buch_00001
--Seite_00001
--Seite_00002
--...
--Seite_00654
Jetzt soll alles ab *_00100 markiert werden, um es zu löschen.
Wie kann ich das über Suchen oder idealerweise über NUM+ abrufen?
Für Anregungen bin ich dankbar.
Happy Weekend
ich habe diverse Ordner mit jeweils mehreren 100 Dateien.
Ich möchte innerhalb eines Ordners (oder später über mehrere Ordner hinweg) alle bis auf die ersten 10, 50 oder 100 Dateien löschen.
Alle Dateien sind am Ende mit 5-stelligen aufsteigenden Zähler benannt. Z.B.
Buch_00001
--Seite_00001
--Seite_00002
--...
--Seite_00654
Jetzt soll alles ab *_00100 markiert werden, um es zu löschen.
Wie kann ich das über Suchen oder idealerweise über NUM+ abrufen?
Für Anregungen bin ich dankbar.
Happy Weekend
Re: Alle bis auf n Dateien markieren
Markieren (Num+) mit Regex (fünfstellige Zahlen mit prefix '_' größer 100):
Beachten, dass das Pipesymbol '|' bei aktivem Regex '<' eine andere Bedeutung ('oder') hat (Im Vergleich zur normalen Operation 'nicht').
- '\d': eine beliebige Ziffer
- '\d\d\': zwei beliebige Ziffern
- '[1-9]': eine beliebige Ziffer zwischen eins und neun.
In der Alt+F7-Suche lässt man '<' weg, und setzt dafür einen Haken bei "[x] RegEx".
Gruss
Holger
Code: Select all
<_\d\d[1-9]\d\d|_\d[1-9]0\d\d|_[1-9]00\d\d
- '\d': eine beliebige Ziffer
- '\d\d\': zwei beliebige Ziffern
- '[1-9]': eine beliebige Ziffer zwischen eins und neun.
In der Alt+F7-Suche lässt man '<' weg, und setzt dafür einen Haken bei "[x] RegEx".
Gruss
Holger
Make our planet great again
Re: Alle bis auf n Dateien markieren
Hallo Holger,
vielen Dank für den Code. Klappt prima.
Würde es in ähnlicher Form auch gehen, wenn die Dateien nicht direkt aufsteigend nummeriert sind ?
Wenn z.B. _00001, _00004, _00007, usw. vorhanden ist. Dann wären es nicht 100 Dateien, die übrig bleiben.
Oder geht das nur per Script?
Grüße
Carsten
vielen Dank für den Code. Klappt prima.
Würde es in ähnlicher Form auch gehen, wenn die Dateien nicht direkt aufsteigend nummeriert sind ?
Wenn z.B. _00001, _00004, _00007, usw. vorhanden ist. Dann wären es nicht 100 Dateien, die übrig bleiben.
Oder geht das nur per Script?
Grüße
Carsten
-
- Power Member
- Posts: 872
- Joined: 2013-09-04, 14:07 UTC
Re: Alle bis auf n Dateien markieren
Ja, das wuerdest du am besten mit einem Skript machen (in einer Skriptsprache deiner Wahl), dass du auf ein Verzeichnis loslaesst und welches sich dann eine Liste aller Dateien in diesem Verzeichnis (sortiert und gefiltert entsprechend deinen Beduerfnissen) vorknoepft und dann alle Files hinter dem x-ten Listen-Eintrag loescht. Das Skript koennte sich dann auch fuer jedes Unterverzeichnis rekursiv selbst aufrufen...
Die Anzahl der zu ueberspringenden ersten Dateien koenntest du per Kommandozeilen-Argument an das Skript uebergeben. Dies wuerde es dir dann erlauben, mehrere verschiedene Toolbar-Buttons mit dem Skriptaufruf fuer 10,50,100,... zu ueberspringende Dateien in TC einzurichten.
Re: Alle bis auf n Dateien markieren
Das sollte eigentlich mit dem gleichen Ausdruck ebenfalls abgedeckt sein.Zarsten wrote: 2021-01-31, 14:55 UTC Würde es in ähnlicher Form auch gehen, wenn die Dateien nicht direkt aufsteigend nummeriert sind ?
Wenn z.B. _00001, _00004, _00007, usw. vorhanden ist. Dann wären es nicht 100 Dateien, die übrig bleiben.
Der Regex-Ausdruck zählt ja nicht sondern vergleicht ein bestimmtes Muster.
Ob einige Kombinationen, die in dieses Muster passen, existieren oder nicht ist dabei zweitrangig.
Gruss
Holger
Make our planet great again
-
- Power Member
- Posts: 872
- Joined: 2013-09-04, 14:07 UTC
Re: Alle bis auf n Dateien markieren
So wie ich Zarsten verstehe, ja eben nicht, gerade weil - wie du bereits erwaehnt hast - der Regex-Ausdruck selbst ja nicht die Dateien abzaehlen kann.HolgerK wrote: 2021-01-31, 17:32 UTC Das sollte eigentlich mit dem gleichen Ausdruck ebenfalls abgedeckt sein.
Der Regex-Ausdruck zählt ja nicht sondern vergleicht ein bestimmtes Muster.
Es ist wohl gerade sein Problem, dass weniger als die ersten 100 Dateien uebrig bleiben (also nicht selektiert werden), wenn die Dateien nicht fortlaufend nummeriert sind.
Also z.B. bei folgenden gegebenen Dateien (und Zarsten kann mich da korrigieren, wenn ich da komplett falsch gelesen habe):
Code: Select all
a_00001.txt
a_00002.txt
a_00104.txt ...bis... a_00666.txt
Code: Select all
a_00001.txt
a_00002.txt
a_00104.txt ...bis... a_00201.txt
Re: Alle bis auf n Dateien markieren
Das verstehe ich so, das alle Dateien die Zahlen größer gleich 10, 50, 100 enthalten, entfernt werden sollen.Ich möchte innerhalb eines Ordners (oder später über mehrere Ordner hinweg) alle bis auf die ersten 10, 50 oder 100 Dateien löschen.
...
Jetzt soll alles ab *_00100 markiert werden, um es zu löschen.
Wenn im Bereich *_00000 bis *_00099 Dateien nicht vorhanden sind, dann werden mit dem RegEx-Ausdruck trotzdem alle Dateien mit Zahlen >= 00100 markiert.
Ein Problem ist übrigens ob man die Datei *_00100 mit markiert oder nicht.
Mit dem obigen Regex wird diese Datei mit markiert!
Aus C-Programmierersicht (Index 0 ist die erste Position) sind das dann bis zu 100 Dateien im Bereich *_00000 .. *_00099 die nicht markiert werden.
Die Frage ist also ob
eine Anforderung oder ein bemängeltes Resultat ist.Wenn z.B. _00001, _00004, _00007, usw. vorhanden ist. Dann wären es nicht 100 Dateien, die übrig bleiben.
Wenn es wirklich darum geht eine feste Anzahl N von Dateien übrig zu lassen, dann müsste man einen Script schreiben, der:
a) feststellt welche Dateien in das Namensschema passen (z.B. mit RegEx)
b) diese Dateien aufsteigend sortieren
c) nur die Dateien ab der N-ten Datei zum markieren raus sortieren.
Da geb ich dir Recht, das geht dann nicht mehr mit RegEx alleine.
Gruss
Holger
Make our planet great again
Re: Alle bis auf n Dateien markieren
Vielen Dank für Eure Ausführungen.
Ziel ist es, die ersten n Dateien übrig zu lassen. Also 10 oder 50 oder 100 z.B.
Bei aufeinanderfolgender Nummerierung passt das Resultat. Mit Lücken in der Nummerierung wäre es ein "Nice to Have".
Da Scripte erstellen nicht zu meinem Repertoire gehört, werde ich mir mit MUT und einem Zähler mit Schrittweite 1 behelfen.
Für das umbenennen über Ordner hinweg -beginnend mit 1 in jedem Ordner- benutze ich gerne Bulk Rename Utility.
Mit besten Grüßen
Ziel ist es, die ersten n Dateien übrig zu lassen. Also 10 oder 50 oder 100 z.B.
Bei aufeinanderfolgender Nummerierung passt das Resultat. Mit Lücken in der Nummerierung wäre es ein "Nice to Have".
Da Scripte erstellen nicht zu meinem Repertoire gehört, werde ich mir mit MUT und einem Zähler mit Schrittweite 1 behelfen.
Für das umbenennen über Ordner hinweg -beginnend mit 1 in jedem Ordner- benutze ich gerne Bulk Rename Utility.
Mit besten Grüßen
Re: Alle bis auf n Dateien markieren
Genau so würde ich es auch machen. Allerdings würde es nicht "behelfen" nennen, sondern es als einfachste, schnellste, effektivste - mit einem Wort: beste - Methode bezeichnen.Zarsten wrote: 2021-02-01, 14:08 UTCwerde ich mir mit MUT und einem Zähler mit Schrittweite 1 behelfen.
Aber nicht vergessen den Counter für alle Werte in gleicher Länge vom MUT erzeugen zu lassen. Also so: [C:5][N]. Dann ist anschliessend erst das Markieren zum Löschen einfacher und am Ende der Arbeit das Löschen des Counters am Anfang der Dateinamen einfach zu machen.
JOUBE