Tôi đang cố gắng tự rút các tài sản ra khỏi tài sản của Rails (đừng hỏi). Tôi đã được chuyển đến ZMV để dễ dàng tìm / thay thế dựa trên regex. Nhưng {32}
cú pháp thông thường để chỉ định số lần lặp lại không hoạt động:
$ zmv -n '(**/)(*)' '$1${2//-[A-Za-z0-9]\{32\}/}'
Tôi đã thử một số định dạng khác. Điều này, ví dụ, hoạt động, nhưng quá tham lam (ví dụ, nó sẽ biến image-3.png
thành image.png
):
$ zmv -n '(**/)(*)' '$1${2//-[A-Za-z0-9]##\./.}'
Cú pháp băm kép đó chỉ xuất hiện sau rất nhiều Google (tôi đã mong đợi +
). Nhưng tôi không thể cho cuộc sống của tôi tìm cách làm {32}
việc. Tôi đã thử #32#
chưa? Có vẻ như nó hoạt động, nhưng đó là bởi vì nó đang đọc nó như (trong mắt tôi) ?32?
và điều đó có nghĩa là nó đã gặp bất cứ thứ gì có ba trong nhân vật tiêu hóa hoặc cuối cùng.
Làm cách nào để biểu thị sự lặp lại ký tự trong zmv?
BIÊN TẬP:
Rõ ràng nó sẽ giúp một số người xem tên tập tin mà tôi đang cố gắng khớp? Để rõ ràng: câu hỏi của tôi là "làm thế nào để tôi biểu thị sự lặp lại ký tự trong zmv" chứ không phải "làm thế nào để tôi khớp các tên tệp này" (một câu hỏi tôi biết câu trả lời theo định dạng RegEx tiêu chuẩn). Nếu nó giúp, đây là dự định của tôi trước và sau:
directory/asset-jej4jtifne9bjkkeuwr09rewrewlur23.css
another-directory/style-748reiodlpqwerntaerwerwerexfzsdf.js.gz
directory/subdirectory/this-is-a-thing-qwertyuiopasdfghjklzxcvbnm123456.js
third-directory/should-not-match-3.css
Nên trở thành:
directory/asset.css
another-directory/style.js.gz
directory/subdirectory/this-is-a-thing.js
third-directory/should-not-match-3.css
EDIT THỨ HAI:
Bởi vì tôi cần phải làm điều này ngày hôm qua, tôi đã làm nó một cách lâu dài và (như mong đợi) nó đã hoạt động. Tôi vẫn muốn biết làm thế nào để tránh nó trong tương lai. Đây là lệnh tôi đã kết thúc bằng cách sử dụng (Tôi đã lặp lại rõ ràng trình so khớp nhân vật của mình 32 lần):
$ zmv '(***/)(*)' '$1${2//-[A-Za-z0-9][A-Za-z0-9][A-Za-z0-9][A-Za-z0-9][A-Za-z0-9][A-Za-z0-9][A-Za-z0-9][A-Za-z0-9][A-Za-z0-9][A-Za-z0-9][A-Za-z0-9][A-Za-z0-9][A-Za-z0-9][A-Za-z0-9][A-Za-z0-9][A-Za-z0-9][A-Za-z0-9][A-Za-z0-9][A-Za-z0-9][A-Za-z0-9][A-Za-z0-9][A-Za-z0-9][A-Za-z0-9][A-Za-z0-9][A-Za-z0-9][A-Za-z0-9][A-Za-z0-9][A-Za-z0-9][A-Za-z0-9][A-Za-z0-9][A-Za-z0-9][A-Za-z0-9]/}'
EDIT THỨ BA:
Đối với bản ghi, tôi đang sử dụng zsh trên OS X. Tôi tưởng tượng zmv giống nhau trên các nền tảng, nhưng tôi không thể nói chắc chắn.