Csoportos átnevezés

Fórumok

Tudom mi ez, és általában tudom is használni, de most másról lenne szó. Az A panelen sok sorozathoz tartozó avi fájl, a B panelen sok mkv fájl de rossz névvel. A sorszámot persze tartalmazza.

Például:
A panel: 1x01 - Blabla.avi
B panel: Blabal.S01E01.WEBRIP.x264.HUN-nubira.mkv

Jelenlegi megoldásom az egyesével való átnevezés sokáig tart. Amit szeretnék az az hogy a számomra helyes avi fájlneveket alkalmazzam az mkv fájlokra is.

A panel: 1x01 - Blabla.avi
B panel: 1x01 - Blabla.mkv

Hogy lehetne ezt megoldani?

Hozzászólások

sed

a Blabal.S01E01.WEBRIP.x264.HUN-nubira.mkv -ból kiszeded a pont előtti részt, kiszeded az S01E01 -ből a két numerikus részt, érzés szerint leszeded a vezető nullát, majd eldobod az utolsó pont előtti részt, aztán a kiszedett részeket más sorrendben fűzöd össze, egy pluszban berakott x karakterrel, így lesz: Blabla.1x01.mkv

A pontos sed -del eljátszhatsz, vagy chatGPT megoldja.

Csoportos átnevezésekre minta alapján az mmv parancsot szoktam használni.

Nagyon parasztos megoldás, 10 perc alatt:

sed -E 's/(.*)\.S([[:digit:]]+)E([[:digit:]]+).*$/\2x\3 - \1\.mkv/'


fisher@s0:~$ echo Blabal.S01E01.WEBRIP.x264.HUN-nubira.mkv | sed -E 's/(.*)\.S([[:digit:]]+)E([[:digit:]]+).*$/\2x\3 - \1\.mkv/'
01x01 - Blabal.mkv

Köszi Fisher

a fáradozásodat, de azt hiszem mindannyian félreértitek a dolgot.
Akkor részletesen.
A panel:
01 - Kár a gőzért.avi
02 - Első nap a suliban.avi
03 - Inkább a halál.avi
04 - Csak ne olyan hevesen!.avi
05 - Búcsú Marcipántól.avi
06 - Kettős születésnap.avi
07 - Anyunak egy szót se!.avi
08 - Szerelem, hó, háború.avi
09 - Rory bálja.avi
10 - Bűnbocsánat bonyodalmakkal.avi
11 - A szakítás.avi
12 - Dupla randevú.avi
13 - A félbe hagyott koncert.avi
14 - Átkozott Donna Reed.avi
15 - Cristopher visszatér.avi
16 - Szerelem a csillagok alatt.avi
17 - A szakítás után.avi
18 - A harmadik Lorerai.avi
19 - Emily csodaországban.avi
20 - Utóirat: szeretlek.avi
21 - Dalnokok és százszorszépek.avi

B panel:
Szivek.szallodaja.S01E01.WEBRIP.x264.HUN-nubira.mkv
Szivek.szallodaja.S01E02.WEBRIP.x264.HUN-nubira.mkv
Szivek.szallodaja.S01E03.WEBRIP.x264.HUN-nubira.mkv
Szivek.szallodaja.S01E04.WEBRIP.x264.HUN-nubira.mkv
Szivek.szallodaja.S01E05.WEBRIP.x264.HUN-nubira.mkv
Szivek.szallodaja.S01E06.WEBRIP.x264.HUN-nubira.mkv
Szivek.szallodaja.S01E07.WEBRIP.x264.HUN-nubira.mkv
Szivek.szallodaja.S01E08.WEBRIP.x264.HUN-nubira.mkv
Szivek.szallodaja.S01E09.WEBRIP.x264.HUN-nubira.mkv
Szivek.szallodaja.S01E10.WEBRIP.x264.HUN-nubira.mkv
Szivek.szallodaja.S01E11.WEBRIP.x264.HUN-nubira.mkv
Szivek.szallodaja.S01E12.WEBRIP.x264.HUN-nubira.mkv
Szivek.szallodaja.S01E13.WEBRIP.x264.HUN-nubira.mkv
Szivek.szallodaja.S01E14.WEBRIP.x264.HUN-nubira.mkv
Szivek.szallodaja.S01E15.WEBRIP.x264.HUN-nubira.mkv
Szivek.szallodaja.S01E16.WEBRIP.x264.HUN-nubira.mkv
Szivek.szallodaja.S01E17.WEBRIP.x264.HUN-nubira.mkv
Szivek.szallodaja.S01E18.WEBRIP.x264.HUN-nubira.mkv
Szivek.szallodaja.S01E19.WEBRIP.x264.HUN-nubira.mkv
Szivek.szallodaja.S01E20.WEBRIP.x264.HUN-nubira.mkv
Szivek.szallodaja.S01E21.WEBRIP.x264.HUN-nubira.mkv

Az összes mkv fájlt szeretném átnevezni az avi fájlok neveire.
Tehát nem csak egy fájl, hanem többet, és semmi nem egyezik. Úgy gondolom, hogy be kellene listáznom egy adatbázisba az avi fájlok 
neveit, majd onnan kinyerve felhasználni. De hogy biztosítom azt hogy mindegyik név passzoljon.

Ez a fájlnév kell kiterjesztés nélkül.
18 - A harmadik Lorerai.avi

Ezt kell átnevezni
Szivek.szallodaja.S01E18.WEBRIP.x264.HUN-nubira.mkv

Erre:
18 - A harmadik Lorerai.mkv

Egy azonosítót tudok használni, nevezetesen a 18-as számot, mivel az mind a kettőben benne van.

Ötletek:
ls | rev | cut -c 4- | rev > /tmp/minta.txt 
Így megkapom kiterjesztés nélkül a helyes névlistát. Ezt betenném egy adatbázisba melyet aztán for ciklussal kitudok olvasni.

Az avi fájlokból egyszerűbben kitudom szűrni a számokat, és azt kell összevessem az mkv fájlokban lévő számokkal.
Itt gondolom sed lenne a jó. Ha van egyezés akkor... Na és hogyan tovább?
 

#!/bin/bash

pa='/path/to/A'
pb='/path/to/B'

cd "$pb"
ls -1 "$pa" | while read fa
do
  read ep _ title <<< "`basename "$fa" .avi`"
  fb="`basename *E${ep}\.*`"
  echo mv "$fb" "$ep - $title.mkv"
done

 

./atnev 
mv Szivek.szallodaja.S01E01.WEBRIP.x264.HUN-nubira.mkv 01 - Kár a gőzért.mkv
mv Szivek.szallodaja.S01E20.WEBRIP.x264.HUN-nubira.mkv 20 - Utóirat: szeretlek.mkv