Tôi có một lệnh thay thế sed mà tôi muốn tương thích với BSD sedcũng như GNU sed. Biểu thức chính quy mở rộng không phải là vấn đề vì tôi không cần chúng trong trường hợp này. Vấn đề chính của tôi là sự khác biệt trong cách hai seds diễn giải các chuỗi ký tự thoát trong chuỗi thay thế . Chuỗi thay thế của tôi chứa các tab và dòng mới và tôi muốn chúng hiển thị trong chuỗi lệnh để dễ bảo trì, tuy nhiên, BSD sedkhông diễn giải các chuỗi thoát và GNU sed cũng vậy . Cách thích hợp để hướng dẫn seddiễn giải các chuỗi thoát này trên BSD là gì? Hai đoạn trích sau đây là điển hình cho vấn đề của tôi:
GNU sed
echo ABC | sed 's/B/\n\tB\n'
anh em
A
B
C
BSD sed
echo ABC | sed 's/B\n\tB\n'
sản lượng
AntBnC
Thông suốt, \n và \tkhông được BSD hiểu là các chuỗi thoátsed
Bây giờ, với câu hỏi của tôi. Theo BSDsed :
Để chỉ định một ký tự dòng mới trong chuỗi thay thế, trước nó có dấu gạch chéo ngược.
Có phải điều này ngụ ý rằng tôi cần phải đi trước một dòng mới theo nghĩa đen bằng dấu gạch chéo ngược? Cách thích hợp để hướng dẫn seddiễn giải các chuỗi thoát như \ntrong văn bản thay thế là gì?
sed. Cuối cùng, nó có thể có ý nghĩa để sử dụng awk. Vì vậy, bạn nghĩ gì về việc giải thích các trang web BSD sed tôi đã trích dẫn?