Multi Rename Umbenenn Tool: Funktion zur Positionssuche eines Platzhalterzeichens

German support forum

Moderators: white, Hacker, Stefan2

Post Reply
wolfi232
Junior Member
Junior Member
Posts: 12
Joined: 2019-07-23, 16:05 UTC

Multi Rename Umbenenn Tool: Funktion zur Positionssuche eines Platzhalterzeichens

Post by *wolfi232 »

Gibt es eine im MRU verfügbare Funktion, mit der die Position eines Platzhalterzeichens innerhalb des Dateinamens identifiziert werden kann?

Beispiel:
adsfgkd_ddsasaf.pdf --> Position des Platzhalters "_" = 8
ggjkd_fjfjkdsö.pdf --> Position des Platzhalters "_" = 6
ss_ddsfsdsf.pdf --> Position des Platzhalters "_" = 3

Ähnlich der Funktion suchen() in Excel.

Vielen Dank für eure Hilfe!
Grüsse Wolfi
User avatar
Stefan2
Power Member
Power Member
Posts: 4132
Joined: 2007-09-13, 22:20 UTC
Location: Europa

Re: Multi Rename Umbenenn Tool: Funktion zur Positionssuche eines Platzhalterzeichens

Post by *Stefan2 »

Hallo Wolfi, willkommen.

wolfi232 wrote: 2019-07-23, 16:15 UTC Gibt es eine im MRU verfügbare Funktion, mit der die Position eines Platzhalterzeichens
innerhalb des Dateinamens identifiziert werden kann?



Verwende mal den "[#-#]_Teil"-Button im MUT.





Das?
 
wolfi232
Junior Member
Junior Member
Posts: 12
Joined: 2019-07-23, 16:05 UTC

Re: Multi Rename Umbenenn Tool: Funktion zur Positionssuche eines Platzhalterzeichens

Post by *wolfi232 »

Hallo Stefan,
Danke für dein Feedback.
Soweit ich weiss ist die Funktion "[#-#]_Teil" aber nur verwendbar, wenn die Start- und Endposition des gewünschten Teilstrings konstant vorgegeben ist.

In meinem Fall befindet sich der Platzhalter "_" jedoch an unterschiedlichen Positionen, wodurch ich die korrekte Startposition der "[#-#]_Teil" Funktion erst ermitteln muss. Oder?

Grüsse
Wolfi
User avatar
Stefan2
Power Member
Power Member
Posts: 4132
Joined: 2007-09-13, 22:20 UTC
Location: Europa

Re: Multi Rename Umbenenn Tool: Funktion zur Positionssuche eines Platzhalterzeichens

Post by *Stefan2 »

2wolfi232

Ach so meinst du das.
>"unterschiedlichen Positionen"


Das kannst du mittels RegEx erledigen, wenn die Unterstriche an unterschiedlichen Positionen sind, aber immer eindeutig identifiziert werden können.
Also zB "immer der erste Unterstrich", oder immer der Zweite, oder der Letzte, oder nach einem bestimmten Zeichen oder vor einer Zahl.

Am Beispiel:
adsfgkd_ddsasaf.pdf --> Position des Platzhalters "_" = 8
ggjkd_fjfjkdsö.pdf --> Position des Platzhalters "_" = 6
ss_ddsfsdsf.pdf --> Position des Platzhalters "_" = 3


Muster: finde Alles, bis zu einem (bzw. hier bei diesem Ausdruck: dem letzten) Unterstrich, dann den Rest.
Verwende [x]RegEx:
Finde: (.+)(_)(.+)
Ersetze mit: .... tja, kommt halt darauf an was du machen möchtest. Auf die (..)-Gruppen kannst du mittels $1 bis $3 zugreifen.




muss weg, später mehr
wolfi232
Junior Member
Junior Member
Posts: 12
Joined: 2019-07-23, 16:05 UTC

Re: Multi Rename Umbenenn Tool: Funktion zur Positionssuche eines Platzhalterzeichens

Post by *wolfi232 »

Hallo Stefan,
Danke für den exzellenten Tipp! Die so umfassenden Möglichkeiten der RegEx Option war mir bisher nicht bekannt.

Beispiel, ich habe folgende Dateinamen:
aaaaaa.pdf
aaaaaa_bbbbb.pdf
aaaaaa_bbbbb_cccccc.pdf
aaaaaa_bbbbb_cccccc_ddddd.pdf

Ziel: Ich möchte NUR auf einen spezifischen Substring innerhalb von zwei Platzhalterzeichen zugreifen (z.B. nur den 1. Block im Beispiel mit aaaaa oder nur den 2. Block im Beispiel mit bbbbbb falls vorhanden)..

Versuch:
RegEx Option aktiviert
Suchen nach: (.+)(_)(.+)

Ergebnis für: Ersetzen durch $1:
aaaaaa.pdf
aaaaaa.pdf
aaaaaa_bbbbb.pdf
aaaaaa_bbbbb_cccccc.pdf

Ergebnis für: Ersetzen durch $3:
aaaaaa.pdf
bbbbbb.pdf
cccccc.pdf
dddddd.pdf

Gibt es eine Möglichkeit, nur auf einen spezifischen Substring innerhalb der Reihenfolge zuzugreifen? (z.B. nur den 1. Substring zwischen den ersten beiden "_" oder nur den 2. Substring zwischen dem 2. und 3. "_")?

Grüsse
Wolfi
User avatar
Stefan2
Power Member
Power Member
Posts: 4132
Joined: 2007-09-13, 22:20 UTC
Location: Europa

Re: Multi Rename Umbenenn Tool: Funktion zur Positionssuche eines Platzhalterzeichens

Post by *Stefan2 »

wolfi232 wrote: 2019-07-25, 10:11 UTC
Beispiel, ich habe folgende Dateinamen:
aaaaaa.pdf
aaaaaa_bbbbb.pdf
aaaaaa_bbbbb_cccccc.pdf
aaaaaa_bbbbb_cccccc_ddddd.pdf

Ziel: Ich möchte NUR auf einen spezifischen Substring innerhalb von zwei Platzhalterzeichen zugreifen (z.B.

nur den 1. Block im Beispiel mit aaaaa oder

nur den 2. Block im Beispiel mit bbbbbb falls vorhanden)..



Das Such- sowie das Ersetzmuster muss jeweils auf das Dateinamenmuster passen.



VON:
aaaaaa.pdf
aaaaaa_bbbbb.pdf
ZU:
aaaaaa.pdf
aaaaaa.pdf

Regel: finde alles bis zu einem Unterstrich oder bis zum Ende
Suche: (.+?)_.+|$
Ersetze: $1
[ ]E
[x]RegEx



- - -

VON:
aaaaaa_bbbbb_cccccc.pdf
aaaaaa_bbbbb_cccccc_ddddd.pdf
ZU:
bbbbb.pdf
bbbbb.pdf

Regel: finde alles bis zum ersten Unterstrich, speichere alles bis zum zweiten Unterstrich
Suche: .+?_(.+?)_
Ersetze: $1
[ ]E
[x]RegEx
[x]Subst





Mit den Regulären Ausdrücken musst du rumspielen, siehe die Hilfe (drücke F1 im offenen MUT)
Auch [x]E und [x]Subst musst du je nachdem einsetzen oder nicht.

Es kommt halt immer darauf an, was du vor hast.
Am Besten, du postest einmal ein paar echte Dateinamen und wie diese anschließend aussehen sollen.






 
wolfi232
Junior Member
Junior Member
Posts: 12
Joined: 2019-07-23, 16:05 UTC

Re: Multi Rename Umbenenn Tool: Funktion zur Positionssuche eines Platzhalterzeichens

Post by *wolfi232 »

Super vielen Dank!
Bin immer noch ganz erstaunt über die von mir bisher völlig unterschätzte Vielseitigkeit der RegEx Funktion.

Und wie komme ich
VON:
aaaaaa_bbbbbb_cccccc_dddddd_eeeeee.pdf
ZU:
1) "bbbbb" ?
2) "ccccc" ?
3) "ddddd" ?
4) "eeeee" ?

Grüsse
Wolfi
User avatar
Stefan2
Power Member
Power Member
Posts: 4132
Joined: 2007-09-13, 22:20 UTC
Location: Europa

Re: Multi Rename Umbenenn Tool: Funktion zur Positionssuche eines Platzhalterzeichens

Post by *Stefan2 »

wolfi232 wrote: 2019-07-26, 10:28 UTC Und wie komme ich
VON:
aaaaaa_bbbbbb_cccccc_dddddd_eeeeee.pdf
ZU:
1) "bbbbb" ?
2) "ccccc" ?
3) "ddddd" ?
4) "eeeee" ?


Suche ein-oder-mehr (+) beliebiges Zeichen (.) non-greedy (?) bis zu einem Unterstrich (_).
Speichere das Gefundene in einer (...)-Gruppe >>(.+?)_(.+?)_(.+?)_(.+?)_(.+)<<
und greife mittels $x beim Ersetzen darauf zu >>$2 $3 $4 $5<<.


Dieser Suchausdruck passt nur auf Dateien mit mindestens vier Unterstriche im Namen!
Stefan2 wrote: 2019-07-25, 10:42 UTCDas Such- sowie das Ersetzmuster muss jeweils auf das Dateinamenmuster passen.


VON:
aaaaaa_bbbbbb_cccccc_dddddd_eeeeee.pdf
ZU:
ZWEI bbbbbb DREI cccccc VIER dddddd FÜNF eeeeee.pdf

Suche: (.+?)_(.+?)_(.+?)_(.+?)_(.+)
Ersetze: ZWEI $2 DREI $3 VIER $4 FÜNF $5
[ ]E
[x]RegEx






HTH? :D
wolfi232
Junior Member
Junior Member
Posts: 12
Joined: 2019-07-23, 16:05 UTC

Re: Multi Rename Umbenenn Tool: Funktion zur Positionssuche eines Platzhalterzeichens

Post by *wolfi232 »

Hallo Stefan,
Super!!!!! vielen Dank für den tollen Input!
Ich bin immer noch begeistert von der Vielseitigkeit der dargestellten Lösung :-)
Die Verwendung der extrahierten Substrings zur Umformatierung des Dateinamens ist klar. (Da die Einsatzmöglichkeiten extrem vielseitig sind, werde ich mir bei Gelegenheit wohl die Dukumentation der TRegExpr Bibliothek unter http://www.regexpstudio.com/ zu Gemüte führen...).

Gibt es im TC eigentlich auch eine Möglichkeit, die durch RegEx aus dem Dateinmamen extrahierten Teilstrings in die Metadaten eines Files zurückzuschreiben? (also nicht zur Umbenennung eines Dateinamens zu nutzen?)

Beispiel:
Dateiname: aaaaa_bbbbbbb_ccc_dd.pdf

Aufgabe 1: schreiben des aaaaa Blockes in das Feld "Autor" der PDF Metadaten?
oder Aufgabe 2: schreiben des bbbbbbb Blockes in das Feld "Titel" der PDF Metadaten?

Grüsse
Wolfi
User avatar
Stefan2
Power Member
Power Member
Posts: 4132
Joined: 2007-09-13, 22:20 UTC
Location: Europa

Re: Multi Rename Umbenenn Tool: Funktion zur Positionssuche eines Platzhalterzeichens

Post by *Stefan2 »

Hallo Wolfi

wolfi232 wrote: 2019-07-29, 20:20 UTC
Gibt es im TC eigentlich auch eine Möglichkeit, die durch RegEx aus dem Dateinmamen extrahierten Teilstrings in die Metadaten eines Files zurückzuschreiben? (also nicht zur Umbenennung eines Dateinamens zu nutzen?)

Das hat ja jetzt nichts mehr mit dem Multi Umbenenn Tool zu tun, eröffne doch deshalb bitte einen neuen Thread
für deine neue Frage, damit die Frage und Antwort mehreren zu Gute kommt.

(du kannst ja gerne auf diesen Anfang hier verlinken)

Danke schön.



 
wolfi232
Junior Member
Junior Member
Posts: 12
Joined: 2019-07-23, 16:05 UTC

Re: Multi Rename Umbenenn Tool: Funktion zur Positionssuche eines Platzhalterzeichens

Post by *wolfi232 »

Hallo Stefan,
Sorry für die möglicherweise redundanten Zusatzfragen (Ich bin in der Formulierung von RegEx Operatoren noch Neuling ... :-) ).

Die weiter oben genannte Suchsyntax zur Extraktion des Textes zwischen zwei "_" Platzhalterzeichen funktioniert bisher sehr gut!
Die bisher verwendete gut funktionierende Suchsyntax für das Platzhalterzeichen "_" --> (.+?)_(.+?)_(.+?)_(.+?)_(.+)
Die neu gesuchte Suchsyntax für das Platzhalterzeichen "." --> ???

Zusatzfrage:
Gibt es einen Trick wie diese Suchsyntax zu formulieren ist, wenn das zu suchende Platzhalterzeichen "." zufällig ident mit dem Suchoperator ist der im obigen bisherigen Beispiel hinter dem "(" Zeichen steht?

Grüsse
Wolfi
User avatar
Stefan2
Power Member
Power Member
Posts: 4132
Joined: 2007-09-13, 22:20 UTC
Location: Europa

Re: Multi Rename Umbenenn Tool: Funktion zur Positionssuche eines Platzhalterzeichens

Post by *Stefan2 »

Kein Problem, immer her mit den Fragen, ich versuche mich mal an einer Antwort:

.+?

Der Punkt sucht ein beliebiges Zeichen, das Plus sucht ein-oder-mehr von dem Zeichen links davon, das Fragezeichen schränkt die Suche auf den kürzesten Treffer ein (non-greedy)
Die Klammern um (.+?) speicher das was gefunden wurde, um es später beim Ersetzen wieder über die $n-Syntax einzufügen ($1, $2,...)



Um einen wirklichen (literal) Punkt (".") zu suchen, muss man das RegEx-Metazeichen "." (Punkt) escapen
und ihm so seine besondere Bedeutung als MetaZeichen nehmen: "\."

Also: """Wolfi: Die neu gesuchte Suchsyntax für das Platzhalterzeichen "." -->""" ist "\."


- - -


"""Wolfi: Gibt es einen Trick..."""
Ich versuche noch deine Frage zu verstehen.
Aber sieh mal, für die RegEx-Engine sind ja die Zeichen "." und "\." unterschiedlich. Das beantwortet wahrscheinlich deine Frage bereits???

Ansonsten steht vielleicht ein anderer Leser weniger auf dem Schlauch :D


Ah, Nachtrag: ein Punkt (\.) ist ja auch "beliebiges Zeichen" und wird somit durch den Ausdruck "." ebenfalls gefunden.



HTH?
wolfi232
Junior Member
Junior Member
Posts: 12
Joined: 2019-07-23, 16:05 UTC

Re: Multi Rename Umbenenn Tool: Funktion zur Positionssuche eines Platzhalterzeichens

Post by *wolfi232 »

Hallo Stefan,
Super, alle Fragen beantwortet!
Je mehr ich mich mit der für mich neuen RegEx Funktion beschäftige, umso mehr staune ich über die unglaubliche Vielfalt und flexiblen Anpassbarkeit dieses Tools... :-)

Vielen Dank!!!

Grüsse
Wolfi
Post Reply