Tôi có một thư mục với hình ảnh có tên:
pic001-2.png
pic002-2.png
pic003-2.png
Làm thế nào để tôi đổi tên chúng thành sau đây?
pic001.png
pic002.png
pic003.png
Tôi đã cố gắng mv "pic*-2.png" "pic*.png"
nhưng tiếp tục nhận được lỗi.
Tôi có một thư mục với hình ảnh có tên:
pic001-2.png
pic002-2.png
pic003-2.png
Làm thế nào để tôi đổi tên chúng thành sau đây?
pic001.png
pic002.png
pic003.png
Tôi đã cố gắng mv "pic*-2.png" "pic*.png"
nhưng tiếp tục nhận được lỗi.
Câu trả lời:
Điều này sẽ xóa cái đầu tiên -2
được tìm thấy trong mỗi tên tệp:
for f in pic*-2.png; do
mv "$f" "${f/-2/}"
done
Để kiểm tra nó, chỉ cần echo
chuẩn bị cho mv
dòng.
Bạn cần lệnh 'đổi tên' một cách thích hợp!
Hãy thử một cái gì đó như thế này:
rename 's/(pic\d+)-\d\.jpg/$1.jpg/' pic*.jpg
Nó lấy một biểu thức chính quy perl làm đối số đầu tiên, vì vậy các tùy chọn thao tác và khớp mẫu của bạn khá rộng. Xem trang đổi tên (1) man để biết chi tiết đầy đủ.