Tôi muốn thay đổi các mẫu sau:thượng hạ hợp cụ thể bằng cách sử dụng sed
getFoo_Bar
tới:
getFoo_bar
(lưu ý các b thấp hơn)
Biết không foo cũng không phải thanh, mẫu thay thế là gì?
tôi bắt đầu viết
sed 's/\(get[A-Z][A-Za-z0-9]*_\)\([A-Z]\)/\1
nhưng tôi bị mắc kẹt: Tôi muốn viết "\ 2 thấp hơn trường hợp", làm thế nào để làm điều đó?
Có lẽ sed không được điều chỉnh?
Để mở rộng câu trả lời, đây là biểu thức chung để chuyển sang chữ thường, tất cả các ký tự: 'echo getFoo_Bar | sed -e 's/\ ([A-Z] [A-Za-z0-9] * \)/\ L \ 1/g'', tạo ra 'getfoo_bar' – espinchi
Lưu ý rằng giải pháp này chỉ hoạt động với GNU sed. Không có '\ l' /' \ L'/'\ u' /' \ U'/'\ E' trong POSIX sed. Trong trường hợp này bạn có thể sử dụng perl (xem câu trả lời của [@ user83591 cho câu hỏi này] (http://stackoverflow.com/a/689620/2451238)) hoặc awk (xem [câu trả lời của tôi cho một câu hỏi khác] (http: // stackoverflow .com/a/18298882/2451238)). – mschilli