Đổi tên nhiều tệp bằng cách thêm một chuỗi vào đầu


21

Đối với khoảng 200 tệp trong một thư mục tôi muốn thêm Chuỗi 1_vào đầu tất cả tên tệp.

Tên tập tin là, ví dụ, DATASET_X_Y_Zvà kết quả nên được 1_DATASET_X_Y_Z.

Tôi không biết gì về kịch bản Shell, nhưng có lẽ có một lớp lót cho thiết bị đầu cuối.



Liên kết @Rinzwind là về một câu hỏi khác nhau. Câu hỏi Macydanim là về việc chuẩn bị chuỗi cho tên tệp, không phải nội dung tệp.
jc

Câu trả lời:


38
  • rename 's/^/1_/' * để đổi tên tất cả các tệp trong thư mục hiện tại

hoặc là

  • rename 's/^/1_/' DATASET*để đổi tên tất cả các tệp trong thư mục hiện tại bắt đầu bằng DATASETtên của chúng

Giải thích: biểu thức s/^/1_/cho biết: "thay thế phần đầu của tên tệp (có nghĩa là ký hiệu này -> ^) 'bằng 1_".


Nếu bạn renamekhông làm điều này ra khỏi hộp, bạn cần cài đặt prename(đổi tên PERL).
dùng1359

14

Bạn có thể dễ dàng đổi tên tất cả các tệp trong cách gõ thư mục hiện tại (giả sử bạn đang sử dụng bash):

for i in *; do mv "$i" 1_"$i"; done

rõ ràng là chăm sóc nó; nó sẽ làm lại TẤT CẢ các tệp trong thư mục hiện tại 'hiển thị' (tên tệp không bắt đầu bằng '.')


Đây là giải pháp chính xác đầu tiên tôi tìm thấy, có thể được sử dụng để nối thêm một cái gì đó giống như .csvmột tập hợp con của tập tin, với biểu thức thẻ đại diện đã thay đổi thay vì *. +1
Zelphir Kaltstahl

Ồ Vòng lặp trên CLI! Điều này là mới. :)
Raymond Wachaga

9

Bạn có thể sử dụng pyRenamer . Nó có thể được tìm thấy trong trung tâm phần mềm Ubuntu. nhập mô tả hình ảnh ở đây Mẫu tệp gốc phải là {X} và mẫu tệp được đổi tên phải là 1_ {1}


Một trong những chương trình yêu thích của tôi
Allan
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.