Ben rename
her zaman kullanırım. Oldukça basit, ama umarım temel regex'i biliyorsunuzdur:
rename "s/SEARCH/REPLACE/g" *
Bu dizeyi yerini alacak SEARCH
olan REPLACE
(yani, her dosyada *
). /g
Eğer bir olsaydı bu yüzden araçlarının küresel, SEARCH_SEARCH.jpg
bu 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, /gi
ya /ig
da 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 rename
kalıplarını kullanır ve güçlü olmadığı. prename
Ubuntu’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.mp3
ve “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.pdf
içine değişecek Something.doc
. (Ters eğik çizginin sebebi, .
regexp içindeki bir joker karakterdir, bu nedenle .pdf
eşleşir qPDF
ancak \.pdf
tam 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'/g
ve s/Search/Replace/g
BASH ile aynıdır . Sadece özel karakterler (ve boşluklar) konusunda dikkatli olmalısınız.
-n
Olumlu 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, -n
bayrağı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 -n
ve tuşuna basın Enter(veya -v
yaptığı tüm değişiklikleri çıkarmak için ile değiştirin ).
Not : 17.04'ün üzerindeki Ubuntu sürümleri rename
varsayılan olarak gönderilmez, ancak yine de depolarda bulunur. sudo apt install rename
Yüklemek için kullanın