Ben renameher zaman kullanırım. Oldukça basit, ama umarım temel regex'i biliyorsunuzdur:
rename "s/SEARCH/REPLACE/g" *
Bu dizeyi yerini alacak SEARCHolan REPLACE(yani, her dosyada *). /gEğer bir olsaydı bu yüzden araçlarının küresel, SEARCH_SEARCH.jpgbu yeniden adlandırılır REPLACE_REPLACE.jpg. Eğer olmasaydı /g, sadece bir defa ikame yapılır ve böylece artık atayacağını REPLACE_SEARCH.jpg. Büyük / küçük harf duyarlı olmasını istiyorsanız, ekleyin /i(bu, /giya /igda sonunda olur).
Düzenli ifadelerle daha fazlasını yapabilirsiniz.
Bunun rename, tam Perl düzenli ifadelerini destekleyen prename(aka Perl rename) komutudur. Başka var renamekalıplarını kullanır ve güçlü olmadığı. prenameUbuntu’da (Perl ile birlikte) varsayılan olarak kurulmuştu, ancak şimdi yapmanız gerekebilir:
sudo apt install rename
İşte birkaç örnek:
Önek
Ekle :
rename 's/^/MyPrefix_/' *
document.pdf yeniden adlandırıldı MyPrefix_document.pdf
Kaldır :
Ayrıca istenmeyen dizeleri kaldırabilirsiniz. Diyelim ki şöyle bir MP3 dosyası vardı CD RIP 01 Song.mp3ve “CD RIP” bölümünü silmek istediniz ve hepsini bir komutla silmek istediğinizi varsayalım .
rename 's/^CD RIP //' *
CD RIP 01 Song.mp3 için 01 Song.mp3
Fazladan boşluk olduğuna dikkat edin, boşluk '^CD RIP 'olmadan tüm dosyalar dosyanın ilk karakteri olarak boşluk bırakacaktır. Ayrıca, bunun ^karakter olmadan çalışacağını ancak CD RIP dosya adının herhangi bir bölümünde eşleşeceğini unutmayın . ^Onlar dosyanın başlangıcı olup olmadığını garanti yalnızca karakterleri kaldırır.
sonek
Ekle :
rename 's/$/_MySuffix/' *
document.pdf yeniden adlandırıldı document.pdf_MySuffix
Değiştir :
rename 's/\.pdf$/.doc/' *
Something.pdfiçine değişecek Something.doc. (Ters eğik çizginin sebebi, .regexp içindeki bir joker karakterdir, bu nedenle .pdfeşleşir qPDFancak \.pdftam dize ile eşleşir .pdf. BASH'ye aşina değilseniz, SINGLE tırnaklarına ters eğik çizgi koymanız gerekir! veya çift tırnak işareti kullanın, aksi halde bash bunları çevirmeye çalışır. Bash \. ve "\." eşittir .. (Ancak çift tırnak ve ters eğik çizgi kullanılır, örneğin yeni bir satır için "\ n", ancak "\."geçerli bir geri dönüş dizisi olmadığından çevirir .)
Aslında, dizenin bölümlerini bütün yerine tırnak işaretleri içine alabilirsiniz: 's/Search/Replace/g'aynı s/'Search'/'Replace'/gve s/Search/Replace/gBASH ile aynıdır . Sadece özel karakterler (ve boşluklar) konusunda dikkatli olmalısınız.
-nOlumlu olmadığınızda, doğru düzenli ifadelere sahip olmanız seçeneğini tercih etmenizi öneririm . Neyin yeniden adlandırılacağını gösterir, daha sonra yapmadan çıkar. Örneğin:
rename -n s/'One'/'Two'/g *
Bu, -nbayrağını oraya koymamış olsaydın, yapılacak tüm değişiklikleri listeler . İyi görünüyorsa, Upgeri gitmek için tuşuna basın , sonra silin -nve tuşuna basın Enter(veya -vyaptığı tüm değişiklikleri çıkarmak için ile değiştirin ).
Not : 17.04'ün üzerindeki Ubuntu sürümleri renamevarsayılan olarak gönderilmez, ancak yine de depolarda bulunur. sudo apt install renameYüklemek için kullanın