Làm cách nào tôi có thể đổi tên hàng loạt tên tập tin trong Linux?


9

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:


11

Đ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 echochuẩn bị cho mvdòng.


9

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 đủ.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.