Alle bis auf n Dateien markieren

German support forum

Moderators: Hacker, Stefan2, white

Post Reply
Zarsten
Junior Member
Junior Member
Posts: 19
Joined: 2017-08-22, 14:19 UTC

Alle bis auf n Dateien markieren

Post by *Zarsten »

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
User avatar
HolgerK
Power Member
Power Member
Posts: 5409
Joined: 2006-01-26, 22:15 UTC
Location: Europe, Aachen

Re: Alle bis auf n Dateien markieren

Post by *HolgerK »

Markieren (Num+) mit Regex (fünfstellige Zahlen mit prefix '_' größer 100):

Code: Select all

<_\d\d[1-9]\d\d|_\d[1-9]0\d\d|_[1-9]00\d\d
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
Make our planet great again
Zarsten
Junior Member
Junior Member
Posts: 19
Joined: 2017-08-22, 14:19 UTC

Re: Alle bis auf n Dateien markieren

Post by *Zarsten »

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
gdpr deleted 6
Power Member
Power Member
Posts: 872
Joined: 2013-09-04, 14:07 UTC

Re: Alle bis auf n Dateien markieren

Post by *gdpr deleted 6 »

Zarsten wrote: 2021-01-31, 14:55 UTC Oder geht das nur per Script?
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.
User avatar
HolgerK
Power Member
Power Member
Posts: 5409
Joined: 2006-01-26, 22:15 UTC
Location: Europe, Aachen

Re: Alle bis auf n Dateien markieren

Post by *HolgerK »

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.
Das sollte eigentlich mit dem gleichen Ausdruck ebenfalls abgedeckt sein.
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
gdpr deleted 6
Power Member
Power Member
Posts: 872
Joined: 2013-09-04, 14:07 UTC

Re: Alle bis auf n Dateien markieren

Post by *gdpr deleted 6 »

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.
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.
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
sollen nach meinem Verstaendis die folgenden Dateien nicht selektiert/nicht geloescht werden (also die ersten einhundert Dateien):

Code: Select all

a_00001.txt
a_00002.txt
a_00104.txt   ...bis...   a_00201.txt
und dass kann man nicht mit einem Regex-Ausdruck alleine bewerkstelligen. Da muss man, auf welche Art auch immer, abzaehlen...
User avatar
HolgerK
Power Member
Power Member
Posts: 5409
Joined: 2006-01-26, 22:15 UTC
Location: Europe, Aachen

Re: Alle bis auf n Dateien markieren

Post by *HolgerK »

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.
Das verstehe ich so, das alle Dateien die Zahlen größer gleich 10, 50, 100 enthalten, entfernt werden sollen.
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
Wenn z.B. _00001, _00004, _00007, usw. vorhanden ist. Dann wären es nicht 100 Dateien, die übrig bleiben.
eine Anforderung oder ein bemängeltes Resultat ist.

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
Zarsten
Junior Member
Junior Member
Posts: 19
Joined: 2017-08-22, 14:19 UTC

Re: Alle bis auf n Dateien markieren

Post by *Zarsten »

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
JOUBE
Power Member
Power Member
Posts: 1664
Joined: 2004-07-08, 08:58 UTC

Re: Alle bis auf n Dateien markieren

Post by *JOUBE »

Zarsten wrote: 2021-02-01, 14:08 UTCwerde ich mir mit MUT und einem Zähler mit Schrittweite 1 behelfen.
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.

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
Post Reply