Ako hromadne premenovať súbory

alebo ako sa naučiť výrazy RegExp ľahko a rýchlo


Aj Vám sa to už stalo ? Máte niekde na disku hromadu súborov, ktoré potrebujete premenovať a nechcete pri tom stráviť celé detstvo. Ako na to?

Ja som tento problém začal riešiť ak mi prestali vyhovovať názvy mojich skonvertovaných DVD nosičov do MP4 súborov. Pôvodne som mal názvy v súlade s tým ako súbory menuje iTunes. Ale po prechode na Infuse mi tieto názvy už nevyhovovali.

Väčšina ľudí asi začne súbory ručne premenovávať. Jeden za druhym a meniť. Pri troche šikovnosti sa to dá zvládnuť aj celkom rýchlo, za pár hodín (v horšom prípade, za pár dní). Ale my použijeme inú metódu — RegExp.

Ak nepatríte medzi počítačových expertov, asi Vám to veľa nepovie, ale ja sa pokúsim Vám to trošku bližšie vysvetliť. Najprv si pozrite obrázok.

stránka regex101.com

Keď si pozorne pozriete obrázok, zistíte, že používame v tomto prípade výraz:

/(\d+)-(\d+)\s+(.*)/gim

Ak si to rozmeníme na drobné, tak zistíme, že máme tri skupiny na získanie hodnôt v zátvorke. Prvá a druhá je (\d+) a posledná (.*). Medzi tým máme - a \s+. Čo to všetko znamená?

  • \d+ — \dzíska z textu číslo a + znamená jeden alebo viac za sebou
  • - — v texte bude pomlčka
  • \s+ — v texte sa nachádza medzera (jeden alebo viac krát)
  • .* — vezme z textu akýkoľvek znak, * hovorí o počte, nula až nekonečno

Tri skupiny, ktoré sme ohraničili zátvorkami použijeme pri nahradzovaní textu ako $1 $2 a $3. Priamo na stránke regex101.com si môžete na nečisto vyskúšať zadaním textu do poľa pod označením “substitution”. Ak Vám to funguje, môžeme prejsť na ďalší krok a to hromadné premenovanie.

Na hromadné premenovanie som použil aplikáciu ForkLift.

Funkcia MultiRename v aplikácii Forklift

ForkLift má jednú peknú vlastnosť. Umožňuje hromadné premenovanie súborov s použitím RegExp. Ak chcete hromadne premenovať súbory, musíte ich označiť a potom v menu vybrať File -> Multi Rename alebo jednoducho stlačiť Enter. Po zvolení RegEXP a zadaní “masky” si môžete prezrieť budúce názvy súborov.

Ukážka výsledkov hromadného premenovania pomocou RegExp

Mne premenovanie množsta súborov takto zabralo pár desiatok minút. A je to značný pokrok, ak si vezmem, koľko by mi zabralo premenovávanie každého súboru zvlášť.