Hernoemen van bestanden met specifieke karakters in de naam

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • Piet400
  • Registratie: Juli 2009
  • Laatst online: 05-10 15:12
Ik heb een behoorlijk aantal bestanden die bij elkaar horen en opeen volgend zijn.

De bestandsnamen eindigen op iets als:

x1-01 t/m x1-20
x2-01 t/m x2-20
x3-01 t/m x3-20
etc.

Het betreft veel bestanden en ik zou ze willen laten beginnen met een volgnummer waarbij het bestand dat eindigt op x1-01 moet worden vooraf gegaan door 01.
x1-02 zal dan moeten beginnen met 02. enz.

ik kan me voorstellen dat dit niet in 1x af te vangen is, maar als ik met de hand de string op kan geven waarbij het hernoemen per bestand gebeurd is het voor mij ook al goed. nu is het heel veel zoeken naar het juiste bestand, om vervolgens het juiste volgnummer ervoor te zetten.

Bestaat er een programma'tje die me het werk gemakkelijker kan maken ?

[ Voor 3% gewijzigd door Piet400 op 13-11-2017 20:54 ]


Acties:
  • 0 Henk 'm!

  • Blommie01
  • Registratie: Juli 2010
  • Laatst online: 12-10 17:50
Dit kun je met "rename" in een keer doen. Standaard in elke distro aanwezig..

https://www.maketecheasier.com/rename-files-in-linux/

[ Voor 116% gewijzigd door Blommie01 op 13-11-2017 21:05 ]


Acties:
  • 0 Henk 'm!

  • Piet400
  • Registratie: Juli 2009
  • Laatst online: 05-10 15:12
ik begrijp dat het renamen erg simpel is met 'rename' maar ik probeer het met een windows tooltje te doen.
mocht het daar niet mee lukken, dan wil ik het best met een linux distro proberen.

Nu heb ik bijvoorbeeld een directory met 100 bestanden daarin, zeg dat ze eindigen op de volgende bestandsnamen:

x1-01 t/m x1-20
x2-01 t/m x2-20
x3-01 t/m x3-20
x4-01 t/m x4-20
x5-01 t/m x5-20

Dat zijn dus 100 lange bestandsnamen eindigend op de series zoals hierboven benoemd. het is al een karwei om telkens het eerst volgende nummer te vinden tussen alle bestanden (want ze zijn niet op volgorde gesorteerd). dus als je eindelijk de juiste hebt gevonden en hebt hernoemd (volgnummer ervoor) dan is het weer zoeken naar de eerst volgende.

Je kan je misschien wel voorstellen dat dit een tijdrovende klus is. in het voorbeeld hierboven heb ik het over 100 bestanden, maar ik denk dat het er minstens 10.000 zijn. dus een hulpmiddeltje is zeer welkom.

[ Voor 7% gewijzigd door Piet400 op 13-11-2017 21:07 ]


Acties:
  • 0 Henk 'm!

  • Blommie01
  • Registratie: Juli 2010
  • Laatst online: 12-10 17:50
Piet400 schreef op maandag 13 november 2017 @ 21:06:
ik begrijp dat het renamen erg simpel is met 'rename' maar ik probeer het met een windows tooltje te doen.
mocht het daar niet mee lukken, dan wil ik het best met een linux distro proberen.

Nu heb ik bijvoorbeeld een directory met 100 bestanden daarin, zeg dat ze eindigen op de volgende bestandsnamen:

x1-01 t/m x1-20
x2-01 t/m x2-20
x3-01 t/m x3-20
x4-01 t/m x4-20
x5-01 t/m x5-20

Dat zijn dus 100 lange bestandsnamen eindigend op de series zoals hierboven benoemd. het is al een karwei om telkens het eerst volgende nummer te vinden tussen alle bestanden (want ze zijn niet op volgorde gesorteerd). dus als je eindelijk de juiste hebt gevonden en hebt hernoemd (volgnummer ervoor) dan is het weer zoeken naar de eerst volgende.

Je kan je misschien wel voorstellen dat dit een tijdrovende klus is. in het voorbeeld hierboven heb ik het over 100 bestanden, maar ik denk dat het er minstens 10.000 zijn. dus een hulpmiddeltje is zeer welkom.
Al blijft het behelpen met dit soort dingen in Windows zou je onderstaand programma kunnen proberen. Ik weet uit een ver verleden dat deze functie hier in zit.

https://www.ghisler.com/advanced.htm

Acties:
  • 0 Henk 'm!

  • breew
  • Registratie: April 2014
  • Laatst online: 12-10 22:16
ik kom er met Bulk rename utility eigenlijk altijd wel uit.

Acties:
  • 0 Henk 'm!

  • breew
  • Registratie: April 2014
  • Laatst online: 12-10 22:16
even mezelf quoten, zodat je hem niet mist.. het is me gelukt met bulk rename utility

regex(1)
code:
1
2
Match:   (.+)(.{2})
Replace: \2-\1\2


dit is het resultaat (links = oude naam, rechts = nieuwe naam)
regex

Tenzij je iets anders wilt? Dan graag even een handmatig lijstje met "voor" en "na".

[ Voor 8% gewijzigd door breew op 13-11-2017 21:34 ]


Acties:
  • 0 Henk 'm!

  • jeroen3
  • Registratie: Mei 2010
  • Laatst online: 12:27
Lijkt me iets dat ReNamer ook kan doen.

Acties:
  • 0 Henk 'm!

  • Piet400
  • Registratie: Juli 2009
  • Laatst online: 05-10 15:12
Bedankt voor het meedenken. het begint erop te lijken.
Er is nog 1 moeilijkheid, maar ik verwacht dat dit niet te automatiseren is.

In mijn voorbeeld bevat elke reeks 20 bestanden, deze reeksen zijn opvolgend aan elkaar.
dwz. dat de de eerste reeks (x1-01 t/m x1-20) begint met nr. 01 t/m nr. 20. maar de tweede reeks zou dan door moeten lopen, dus reeks (x2-01 t/m x2-20) zou dus genummerd moeten worden van 21 t/m 40.

Maar ik denk dat ik dan het onmogelijke vraag, of niet ?

Wat wel zou kunnen is dat ze niet exact doorlopen, maar dat de reeks (x1-01 t/m x1-20) de nummering 01 t/m 20 krijgt (dat werkt nu al met bovenstaande info). en dat de reeks (x2-01 t/m x2-20) de nummering krijgt van 201 t/m 220. vervolgens de reeks (x3-01 t/m x3-20) de nummering 301 t/m 320 krijgt.

Dat zou te doen moeten zijn denk ik. wellicht een idee ?

[ Voor 41% gewijzigd door Piet400 op 13-11-2017 22:20 ]


Acties:
  • 0 Henk 'm!

  • breew
  • Registratie: April 2014
  • Laatst online: 12-10 22:16
Piet400 schreef op maandag 13 november 2017 @ 22:15:
Bedankt voor het meedenken. het begint erop te lijken.
Er is nog 1 moeilijkheid, maar ik verwacht dat dit niet te automatiseren is.

In mijn voorbeeld bevat elke reeks 20 bestanden, deze reeksen zijn opvolgend aan elkaar.
dwz. dat de de eerste reeks (x1-01 t/m x1-20) begint met nr. 01 t/m nr. 20. maar de tweede reeks zou dan door moeten lopen, dus reeks (x2-01 t/m x2-20) zou dus genummerd moeten worden van 21 t/m 40.

Maar ik denk dat ik dan het onmogelijke vraag, of niet ?

Wat wel zou kunnen is dat ze niet exact doorlopen, maar dat de reeks (x1-01 t/m x1-20) de nummering 01 t/m 20 krijgt (dat werkt nu al met bovenstaande info). en dat de reeks (x2-01 t/m x2-20) de nummering krijgt van 201 t/m 220. vervolgens de reeks (x3-01 t/m x3-20) de nummering 301 t/m 320 krijgt.

Dat zou te doen moeten zijn denk ik. wellicht een idee ?
maar..., maar..., maar... dan doen we toch veels te moeilijk (ik in ieder geval).. Je bestanden staan dus al allemaal in de juiste (alfanumerieke) volgorde, je wilt er alleen een doorlopend getal voor? Dat is echt een eitje voor elke renamer... dat lukt je vast zelf wel met één van de genoemde paketten..

Laat maar weten waar je op vast loopt...

rename

Acties:
  • 0 Henk 'm!

  • Piet400
  • Registratie: Juli 2009
  • Laatst online: 05-10 15:12
breew schreef op maandag 13 november 2017 @ 22:55:
[...]
Laat maar weten waar je op vast loopt...
Ik krijg het nog niet voor elkaar.
Het eerste stuk is top, maar om het af te maken moet er nog wat worden aangepast en dat lukt me niet.

Dus als ik kijk naar de volgende reeks: x5-01 t/m x5-20

dan is nu geregeld dat de volgnummers 1 t/m 20 vooraan in de bestandsnaam staan.
Maar de 5 moet hier nog voor komen alle getallen onder de tien moeten een 0 ervoor krijgen en boven de 10 moet gewoon het getal krijgen die hij heeft.

Dus zoiets: x5-18 = 0518 en x12-16 = 1216.

enig idee hoe ik dat voor elkaar krijg ?

Acties:
  • 0 Henk 'm!

  • breew
  • Registratie: April 2014
  • Laatst online: 12-10 22:16
Die wens had ik nog niet eerder gedestilleerd uit je posts... Wellicht kun je de volgende keer iets duidelijker zijn in je vraagstelling.

Ik doe het even in twee stapjes, eerst voor x1 t/m x9, daarna voor alle x10 en verder

voor x1 t/m 9
regex1
regex10_1

en voor x10 en groter
regex10
reges1_1

Het kan vast ook met één regex, maar ik heb geen zin om dat uit te zoeken :+

Acties:
  • 0 Henk 'm!

  • Piet400
  • Registratie: Juli 2009
  • Laatst online: 05-10 15:12
Super, thnx.
M'n regex kennis gaat niet zo ver :)

Acties:
  • 0 Henk 'm!

  • breew
  • Registratie: April 2014
  • Laatst online: 12-10 22:16
Piet400 schreef op zondag 19 november 2017 @ 19:12:
Super, thnx.
M'n regex kennis gaat niet zo ver :)
Graag gedaan. Probeer te begrijpen wat de regex doet, klakkeloos code overnemen van internet kan je nog wel eens lelijk opbreken (al is het risico hier klein.).

vergeet niet het beste antwoord te markeren...

Acties:
  • 0 Henk 'm!

  • Piet400
  • Registratie: Juli 2009
  • Laatst online: 05-10 15:12
klopt, ik ga het inderdaad proberen te interpreteren. Het is nu nog steeds wel lastig voor het hernoemen omdat veel folders bestanden hebben met een nummering van 10 en hoger dus moet ik binnen de folder de bestanden uitzoeken wat best veel werk is.

is dat uberhaupt mogelijk binnen 1 regex expressie ?

Acties:
  • 0 Henk 'm!

  • breew
  • Registratie: April 2014
  • Laatst online: 12-10 22:16
Piet400 schreef op zondag 19 november 2017 @ 19:47:
is dat uberhaupt mogelijk binnen 1 regex expressie ?
Het is denk ik wel mogelijk, want er bestaat een mogelijkheid om een IF...THEN...ELSE op te nemen in regex.. ik heb het alleen nog nooit gedaan...
https://www.regular-expressions.info/conditional.html

Maar nu heb je het ineens weer over folders?? Die heb ik nog niet eerder gelezen in dit topic. Het lijkt me handig als je nu eens precies vertelt hoe jouw bestandsstructuur en -benaming eruit ziet, inclusief het gewenste eindresultaat.
Op deze manier blijven we aan de gang, en komen er steeds weer nieuwe apen uit de mouw.
Pagina: 1