Bu her türlü pratik değildir - diğer cevaplar çok daha hızlı ve daha kısadır - ama ...
PowerShell kullanabilirsiniz! Microsoft son zamanlarda açık kaynaklı ve çapraz platform haline getirdi. İşletim sisteminize ilişkin indirmeler ve kurulum talimatları için "PowerShell'i Alın" bölümüne bakın .
Yüklendikten sonra, bu kısa komut dosyasını kullanabilirsiniz:
Get-ChildItem -File '*]*.avi' | ForEach-Object {
Rename-Item $_ -NewName (($_.Name -Split ']')[0] + '.avi')
}
Temel olarak, geçerli dizinde bir dosya eşleşmesi olan her nesneden geçer *]*.avi, parçayı parantezden önce alır, .aviüzerine yapışır ve bunu yeni ad olarak atar.
Doğrudan Bash'ten çalıştırmak için, bu yarı golf tekli astarı kullanın:
powershell -command $'gci -File \'*]*.avi\'|%{rename-item $_ -NewName (($_.Name -Split \']\')[0]+\'.avi\')}'
Bu Yığın Taşması cevabının izniyle kaçan alıntı .
(Windows'ta Ubuntu'da Bash'te test edildi. Muhtemelen PowerShell ile yapmanın çok daha kısa bir yolu var, ancak düzenli ifadeler bilmeyen insanlar için anlaşılabilir bir şey göstermek istedim.)
krename, güzel. Her türlü güçlü seçeneğe sahiptir ve gerçekten yapmadan önce ne yapacağını gösterir. Daha sonra bash'de kullanabileceğiniz kalıpları test etmek için bile kullanabilirsiniz.