Tôi muốn thay thế tất cả {} trên một dòng nhất định bằng [], nhưng rất tiếc tôi chỉ có thể khớp với lần xuất hiện cuối cùng của regexp.sed chỉ thay thế lần xuất hiện cuối cùng của trận đấu - cần phải khớp với tất cả
Tôi có một tập tin cấu hình trong đó có cấu trúc như sau:
entry {
id 123456789
desc This is a description of {foo} and was added by {bar}
trigger 987654321
}
Tôi có sed sau, trong đó có khả năng thay thế 'bar' trận đấu cuối cùng nhưng không phải là 'foo':
sed s'/\(desc.*\){\(.*\)}/\1\[\2\]/g' < filename
Tôi neo tìm kiếm này vào dòng có chứa 'desc' như tôi ghét nó để thay thế dấu ngoặc nhọn của từng khối 'mục'.
Đối với cuộc sống của tôi, tôi không thể tìm ra cách thay thế tất cả các lần xuất hiện.
Bất kỳ trợ giúp nào được đánh giá cao - đã học cả ngày và không thể đọc thêm bất kỳ hướng dẫn nào vì sợ rằng giác mạc của tôi có thể bị nứt.
Cảm ơn!
Cảm ơn bạn F.J, điều đó đã hiệu quả! (PS - có thể đánh dấu là đã trả lời trong 3 phút rõ ràng :-) – halfpasthope