Đổi tên - không có ý nghĩa gì


9

Các trang người đàn ông đưa ra hai ví dụ:

rename 's/\.bak$//' *.bak
rename 'y/A-Z/a-z/' *

Vì vậy, đó là s hoặc y và sau đó /replaceThis/withThis

S và y hàng đầu có nghĩa là gì? Có những lựa chọn khác?

Câu trả lời:


12

Trong trường hợp đầu tiên:

rename 's/\.bak$//' *.bak

bạn đang chạy một biểu thức thông thường đối với tên tệp và thay thế phần khớp của biểu thức (.bak ở cuối tên tệp) bằng biểu thức thứ hai (trống).

Trong trường hợp thứ hai:

rename 'y/A-Z/a-z/' *

bạn phù hợp với không gian mẫu biểu thức chính quy và chuyển ngữ cho mục tiêu. Nói cách khác, phạm vi AZ được thay đổi thành phạm vi az, làm cho tên tệp chữ thường.

Tôi đề nghị bạn nhìn vào trang man cho sed để biết thêm các lệnh và biết thêm chi tiết. Tôi tin rằng lệnh 's' được sử dụng thường xuyên nhất. Đồng thời, tài liệu regex (phần 7) và perl cũng có thể giúp ích. Cụ thể, đây là một hướng dẫn về perl và các biểu thức thông thường.


Từ man sed:

s / regapi / thay thế /    
       Cố gắng khớp regrec với không gian mẫu. Nếu thành công‐
       Ful, thay thế phần đó phù hợp với thay thế. Các
       sự thay thế có thể chứa ký tự đặc biệt & để chỉ điều đó
       một phần của không gian mẫu phù hợp và đặc biệt
       thoát \ 1 đến \ 9 để tham chiếu đến kết quả khớp tương ứng
       biểu thức phụ trong biểu thức chính quy.

y / nguồn / mệnh /  
       Chuyển ngữ các ký tự trong không gian mẫu xuất hiện
       trong nguồn cho nhân vật tương ứng trong mệnh.

Cảm ơn nhiều - Tôi chỉ không chắc chắn việc chỉ cho mọi người 'sed' là ý tưởng tốt nhất với vô số triển khai của nó, đặc biệt là giữa bất kỳ bản phân phối linux nào và OSX
aaaaaa

@aaaaaa Trang web này là độc quyền về Ubuntu.
wjandrea
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.