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á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:
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.