Không cần đặt nhãn :abên ngoài hướng dẫn chính, cũng không phải là -etùy chọn cần thiết; cuối cùng, /$/là không cần thiết (mỗi dòng có một ký tự EOL).
Cải thiện các câu trả lời khác, người ta nhận được
sed -i ':a; N; s/\n/ /; ta' file
Cái nào rõ ràng hơn nếu được viết như sau,
sed -i ':a
N
s/\n/ /
ta' file
Lệnh này hoạt động như sau:
N nối thêm dòng tiếp theo vào không gian mẫu (multiline), đã chứa dòng hiện tại;
s/\n/ /thay thế ký tự dòng mới \nđược tạo bởi Nmột khoảng trắng ;
tađi đến dòng tập lệnh theo nhãn :a miễn là thay thế ở bước 2 thành công , tức là nếu thay thế xảy ra, thực thi sẽ nhảy sang bước 1 mà không "nhấn" phần cuối của tập lệnh, tức là không đọc dòng đầu vào khác.
Lưu ý những điều dưới đây;
sedđọc từng dòng của tệp đầu vào theo thứ tự, bắt đầu từ dòng thứ 1 ;
:a chỉ là một nhãn hiệu, không phải là một lệnh được thực thi;
N về nguyên tắc, được thực hiện trên bất kỳ dòng nào, nhưng
s/\n/ /(về nguyên tắc được thực hiện trên bất kỳ dòng nào) là thành công trên bất kỳ dòng nào, nhưng dòng cuối cùng , vì vậy
talàm cho phần cuối của tập lệnh chỉ có thể truy cập khi dòng đầu vào cuối cùng được đọc (dòng duy nhất skhông thành công), vì vậy
- không có dòng đầu vào nào được đọc vào không gian mẫu sau khi dòng thứ nhất được đọc vào nó, trừ khi dòng cuối cùng được đọc, nhưng sau đó không có dòng nào nữa để đọc và
plệnh ẩn được thực thi.
Vì vậy, kịch bản về cơ bản đọc trong dòng đầu vào thứ nhất và tiếp tục nối tiếp từng dòng sau, mỗi lần thay thế dòng mới bằng một khoảng trắng; sau khi dòng cuối cùng được nối (và \nthay đổi trong một khoảng trắng), Nkhông thể nối thêm bất kỳ dòng nào, skhông thành công, tabị bỏ qua, kết thúc tập lệnh và pcâu lệnh rint ngụ ý được thực thi trên không gian mẫu 1 dòng hiện tại .
Các -itùy chọn thay thế các tập tin đầu vào filevới toàn bộ không gian mẫu 1-line.