Zmiana nazw plików

Czy da się w jakimś programie automatycznie zmienić nazwę plików:
nazwa-1.jpg
nazwa-5.jpg
nazwa-7.jpg
nazwa-12.jpg
nazwa-18.jpg
nazwa-121.jpg
nazwa-133.jpg

na

nazwa-001.jpg
nazwa-005.jpg
nazwa-007.jpg
nazwa-012.jpg
nazwa-018.jpg
a te poniżej pozostają niezmienione:
nazwa-121.jpg
nazwa-133.jpg

czyli dobrze byłoby gdybym przed dodaniem plików do programu nie musiał ich selekcjonować, tylko dodać cały katalog.

Do dyspozycji mam linuksowe Krename, pyRenamer, GPRename i pod wine renamer.
pyRenamer, GPRename są słabe, bo nawet nie da się posortować plików po nazwie rosnąco i trzeba je selekcjonować kilkając każdy z osobna.
Renamer pod wine chyba daje najwięcej możliwości.

Spróbuj Total Commanderem. Ponizej jest link opisu zmiany nazw.
Może pomoze ale bez selekcjonowania sie nie obejdzie.

Można to zrobić w Krename w kilku krokach. Usuwając najpierw:
nazwa-
a potem wybierając pliki z nazwą jednocyfrową i dodając zera, potem wybierając dwu-cyfrowe i dodając zero, potem przywracając nazwa-.

Ale robienie tego dla wielu katalogów nie jest najlepszym rozwiązaniem.
Może się chociaż da skrócić kroki ze zmianą cyfryzacji, tj. zrobić to w jednym kroku dla wszystkich plików?

Windowsowy ReNamer przynajmniej daje możliwość wyboru kilku plików.

Mieć Linuxa i narzekać na proste programy do zmiany nazw ?

Od czego masz Basha - wystarczy trochę poszukać - myślenie nie boli:

for f in *.jpg ; do
    number=`echo $f | sed 's/[^0-9]*//g'`
    padded=`printf "%03d" $number`
    
    nn=$(echo $f | sed "s/${number}/${padded}/")
    mv -v $f $nn
done

Zera wiodące ustawiasz zmieniając parametr "%03d" oznacza 3 cyfry ogółem, więc jeżeli masz jedną cyfrę w nazwie to doda do niej 2 zera jeżeli ma ona 3 cyfry to nie doda nic.
@roller_coaster
Co do KRename to jest niby proste narzędzie, ale też potężne zarazem.
Wystarczy znać wyrażenia regularne (regex) i można robić cuda z nazwami.
To, że nie potrafisz to jedno, a że przy odrobinie znajomości można to druga rzecz.
(osobno przetwarzasz 1, 2 i 3 cyfrowe nazwy)


2 polubienia

Linuks to nie religia. Służy mi do pracy. Im prościej tym lepiej dla mnie.

Dzięki, że ci się chciało, ale nie zachowuj się jak fanboy Linuksa.

Ja swoje myślenie wolę używać do innych tematów, które mnie interesują, a nie tracić czas na uczenie się basha.

Co do Krename to już wcześciej napisałem, że to da się zrobić (bo to zrobiłem). W rename też da się zrobić za pomocą opcji serializuj.

Szukałem najłatwiejszego rozwiązania, a bash do takich nie należy, no chyba że ktoś go zna, albo nie ma nic przeciwko temu, żeby się go uczyć tylko po to żeby wykonać zadanie tak wydawałoby się banalne jak zmiana nazw plików.

Ty Straciłeś mnóstwo czasu na szukanie łatwego rozwiązania, a on poświęcił czas na naukę. Ciekawe które rozwiązanie dłuższej perspektywie da lepsze efekty i kto będzie miał więcej czasu na myślenie o czymś innym :wink:

2 polubienia

Zależy co kogoś interesuje bardziej i z czego chce osiągać profity.

Jeśli on ze znajomości basha, to dobrze dla niego. Jeśli ja ze znajomości np. języka obcego, to wolę czas zainwestować w jego naukę. Poza tym mamy rok 2019 i oczekiwanie, że da się zmienić nazwy plików programem nie jest niczym niezwykłym.

Ja tylko odniosłem się do charakteru wypowiedzi, bo wolałbym żeby Linuks kojarzył się z wygodnym używaniem systemu i oprogramowania, a nie koniecznością zagłębiania się w basha.

A swoją drogą to typowe dla linuksa i w ogóle open source zjawisko, że jest po kilka programów robiących to samo, ale wszystkie są beznadziejnie proste i żaden z twórców nie rozwinął swojego oprogramowania tak, żeby miał wydawałoby się intuicyjną możliwość zmiany nazwy na kilku zaznaczonych plikach.

Nie rozumiem argumentu, że nauka jednej rzeczy miałabym wykluczać naukę innej, ale odbiegamy od tematu, więc kończę ten OT.

Nie wyklucza. Chodzi o to na co chcesz poświęcać swój czas i z czego czerpać korzyści. Nie neguję, że dobrze jest znać basha, szczególnie jak się używa Linuksa, ale ja nie mam tyle czasu, ani nawet ochoty, żeby się go uczyć.
Dlatego argument “myślenie nie boli” uważam za niestosowny, bo nieznajomość basha nie czyni od razu człowieka głupcem.

1 polubienie

Racja, unieslisci się trochę oboje. ta reakcja już jest dużo zdrowsza :wink: