Đây là tất cả các loại không thực tế - các câu trả lời khác nhanh hơn và ngắn hơn nhiều - nhưng ...
Bạn có thể sử dụng PowerShell! Microsoft đã mở nguồn gần đây và làm cho nó đa nền tảng. Để tải xuống và hướng dẫn cài đặt cho HĐH của bạn, hãy xem phần "Nhận PowerShell" .
Khi bạn đã cài đặt xong, bạn có thể sử dụng tập lệnh ngắn gọn này:
Get-ChildItem -File '*]*.avi' | ForEach-Object {
Rename-Item $_ -NewName (($_.Name -Split ']')[0] + '.avi')
}
Về cơ bản, nó đi qua từng đối tượng trong thư mục hiện tại là một tệp khớp *]*.avi
, lấy phần trước dấu ngoặc, xử lý .avi
lại nó và gán nó làm tên mới.
Để chạy nó trực tiếp từ Bash, hãy sử dụng lớp lót một nửa sân golf này:
powershell -command $'gci -File \'*]*.avi\'|%{rename-item $_ -NewName (($_.Name -Split \']\')[0]+\'.avi\')}'
Trích dẫn thoát lịch sự của câu trả lời Stack Overflow này .
(Đã thử nghiệm với Bash trên Ubuntu trên Windows. Có lẽ cách này ngắn hơn nhiều so với PowerShell, nhưng tôi muốn thể hiện điều gì đó dễ hiểu đối với những người không biết biểu thức thông thường.)
krename
thật đáng yêu. Nó có tất cả các loại tùy chọn mạnh mẽ và cho bạn thấy những gì nó sẽ làm trước khi nó thực sự làm điều đó. Bạn thậm chí có thể sử dụng nó để kiểm tra các mẫu mà bạn có thể sử dụng trong bash sau này.