Mam serwer multimediów z folderem o nazwie Series
. ( /media/Expansion2/Series/
)
W nim mam (niespodzianka!) Serial telewizyjny. Są to tylko nazwy programów, np./media/Expansion2/Series/The Big Bang Theory/
W folderze każdego programu (i na tym polega problem) mam foldery sezonu. Obecnie mam mieszankę następujących 2 konwencji (prawdopodobnie wraz z kilkoma innymi):
/media/Expansion2/Series/The Big Bang Theory/The Big Bang Theory Season 1
/media/Expansion2/Series/The Big Bang Theory/Season 2
Na koniec chcę zmienić nazwę wszystkich folderów na just Season #
.
Jako wyrażenie regularne prawdopodobnie powiedziałbym coś takiego s/.*(Season \d)/$1
Dotyczy tylko folderów, a nie plików. Powinienem chyba również wspomnieć, że dotyczy to ponad 50 podfolderów programów, więc musi zaczynać od /media/Expansion2/Series/
poziomu i przeglądać każdą serię :)
źródło
rename
Debianie . W systemie Ubuntu (i niektórych odmianach), aby uniknąć kolizji nazw z wcześniej wspomnianym standardowym poleceniem, czasami (choć nie zawsze) można go znaleźć pod . Tutaj na Lubuntu nazywa się samo narzędzie, ale można je wywołać jako ze względu na łańcuch dowiązań symbolicznych , gdzie jest nieco zmodyfikowana wersja .rename
prename
prename
rename
/usr/bin/rename -> /etc/alternatives/rename -> /usr/bin/file-rename
file-rename
prename
Poniższy fragment usuwa wszystko, co nastąpi przed ostatnim wystąpieniem
Season [0-9]
w każdym katalogu show w/media/Expansion2/Series
. Nie są potrzebne wyrażenia regularne, tylko globusy.źródło
Jeśli wolisz grać bezpiecznie i zmień nazwę tylko
some show/some show stuff
nasome show/stuff
:Jeśli chcesz usunąć wszystko wcześniej
Season
:${var#PATTERN}
usuwa WZÓR na początku$var
i zwraca wynik.${var%PATTERN}
robi to samo na końcu.${var#PATTERN}
i${var%PATTERN}
usuń odpowiednio najkrótszy pasujący prefiks i sufiks;${var##PATTERN}
i${var%%PATTERN}
usuń najdłuższy mecz.źródło
Zamierzam opublikować jeszcze dwa rozwiązania w nadziei, że będą one pomocne w przyszłości. Pochodzą one od administratorów Linuksa w pracy. Po prostu pokazuje, ile młotów będzie działać na tym gwoździu!
Rozwiązanie 1:
Rozwiązanie 2:
źródło