Tôi có một lệnh thay thế sed mà tôi muốn tương thích với BSD sed
cũ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 sed
s 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 sed
khô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 sed
diễ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à \t
khô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 sed
diễn giải các chuỗi thoát như \n
trong 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?