Mam kilka plików multimedialnych, takich jak te poniżej:
tvshow.s01e11]Bloodlines.avi
tvshow.s01e12]suffer.avi
tvshow.s01e13]NotMe.avi
Chciałbym zmienić ich nazwę na
tvshow.s01e11.avi
tvshow.s01e12.avi
tvshow.s01e13.avi
Próbowałem użyć zmiany nazwy, ale najwyraźniej nie otrzymałem właściwej składni, ponieważ się nie udaje.
krename
jest cudownie. Ma wiele potężnych opcji i pokazuje, co zrobi, zanim faktycznie to zrobi. Możesz nawet użyć go do przetestowania wzorców, których możesz użyć później.Odpowiedzi:
Spowoduje to zmianę nazw plików. Potrzebujesz \ w *, aby oznaczać dowolną liczbę znaków alfanumerycznych.
Odniesienie: http://www.troubleshooters.com/codecorn/littperl/perlreg.htm#UsingSimpleWildcards
źródło
rename
narzędzia Perl , a nie tego o tej samej nazwie, co z Ut-Linux . Zobacz tutaj i tutajW powłoce można po prostu:
Powłoka może wygenerować listę nazw plików za pomocą zwykłego globu i
${var%pattern}
usuwa (najkrótszy) pasujący wzorzec z końca łańcucha w zmiennejvar
. Ponieważ ostateczne rozszerzenie jest zawsze.avi
, właśnie usunąłem go ze wzorem i dodałem z powrotem. W przypadku cudzysłowów powinno to również działać z nazwami plików zawierającymi spacje, npFancy Name for a Show.s01e01]Asdf.avi
źródło
${x/]*([^.])}
powinno zrobić, usuwa nawias i dowolną liczbę kropek. (choć zawodzi, jeśli są inne nawiasy${x/]*.avi}
i właśnie dodałem.avi
podobnego do ciebie. Ale byłem również niezadowolony z tego, jak odstępy w nazwie będą się łamać(`find . -name '*]*.avi'`)
. Z przyjemnością udostępniłem ograniczoną standardową metodę polecenia unix, ponieważ zmiana nazwy nie jest, ale to wydmuchuje moje z wody.Jest to wszelkiego rodzaju niepraktyczne - inne odpowiedzi są znacznie szybsze i krótsze - ale ...
Możesz użyć PowerShell! Microsoft niedawno go pozyskał i udostępnił na wielu platformach. Aby uzyskać instrukcje dotyczące pobierania i instalacji systemu operacyjnego, zobacz sekcję „Pobierz PowerShell” .
Po zainstalowaniu możesz użyć tego krótkiego skryptu:
Zasadniczo, przechodzi przez każdy obiekt w bieżącym katalogu, który jest dopasowaniem pliku
*]*.avi
, pobiera część przed nawiasem, wkleja z.avi
powrotem do niego i przypisuje to jako nową nazwę.Aby uruchomić go bezpośrednio z Bash, użyj tego częściowo golfowego jedno-liniowego:
Cytuj ucieczkę dzięki uprzejmości tej odpowiedzi Przepełnienie stosu .
(Testowane w Bash na Ubuntu w systemie Windows. Prawdopodobnie jest to znacznie krótszy sposób korzystania z PowerShell, ale chciałem pokazać coś, co jest zrozumiałe dla osób, które nie znają wyrażeń regularnych.)
źródło
Debian ma pakiet o nazwie mmv, który może być również dostępny w innych dystrybucjach i powinien być wystarczająco łatwy do skompilowania ze źródła, jeśli nie. Pozwala napisać to:
Możesz przeczytać stronę podręcznika systemu Ubuntu dla tego polecenia, aby uzyskać więcej informacji.
źródło
Spowoduje to wyszukanie wzoru i zastąpienie tekstu za pomocą sed.
źródło