Tôi là người mới bắt đầu đến sed
. Tôi biết rằng nó có thể áp dụng một lệnh (hoặc một tập các lệnh) vào một phạm vi nhất định của dòng như vậysed - tham gia một loạt các dòng được chọn
sed '/[begin]/,/[end]/ [some command]'
nơi [begin]
là một biểu thức chính quy mà chỉ định dòng đầu của dãy núi này và [end]
là một thường xuyên biểu thức chỉ định dòng kết thúc của phạm vi (nhưng được bao gồm trong phạm vi).
Tôi đang cố gắng sử dụng điều này để chỉ định một loạt các dòng trong một tệp và kết hợp tất cả các dòng đó thành một dòng. Đây là thử nghiệm tốt nhất của tôi, không hoạt động:
sed '/[begin]/,/[end]/ {
N
s/\n//
}
'
Tôi có thể chọn tập hợp các dòng tôi muốn mà không gặp bất kỳ sự cố nào, nhưng tôi dường như không thể hợp nhất tất cả các dòng thành một dòng. Nếu bất cứ ai có thể chỉ cho tôi đi đúng hướng, tôi sẽ thực sự biết ơn.
Cảm ơn bạn rất nhiều. Tôi không bao giờ nghĩ đến việc sử dụng không gian giữ; Tôi đã học được rất nhiều từ câu trả lời của bạn. – Setris
Lưu ý rằng thao tác này sẽ hủy * tất cả các dòng khác *. Xem bên dưới câu trả lời của @Thor để có giải pháp mạnh mẽ hơn. – krlmlr