ไม่จำเป็นต้องวางฉลากไว้:a
นอกคำแนะนำหลักและไม่-e
จำเป็นต้องใช้ตัวเลือก ในที่สุด the /$/
ฟุ่มเฟือย (ทุกบรรทัดมีอักขระ EOL)
การปรับปรุงคำตอบอื่น ๆ จะได้รับ
sed -i ':a; N; s/\n/ /; ta' file
ซึ่งจะชัดเจนกว่าถ้าเขียนดังนี้
sed -i ':a
N
s/\n/ /
ta' file
คำสั่งทำงานดังนี้:
N
ต่อท้ายบรรทัดถัดไปกับพื้นที่รูปแบบ (หลายบรรทัด) ซึ่งมีบรรทัดปัจจุบันอยู่แล้ว
s/\n/ /
แทนตัวอักษรขึ้นบรรทัดใหม่\n
ที่สร้างขึ้นโดยN
มีช่องว่าง
;
ta
ไปบรรทัดต่อไปนี้สคริปต์ฉลาก:a
ตราบใดที่ทดแทนในขั้นตอนที่ 2 ประสบความสำเร็จ , เช่นถ้าเปลี่ยนตัวที่เกิดขึ้นการดำเนินการกระโดดไปขั้นตอนที่ 1 โดยไม่ต้อง "กดปุ่ม" สิ้นสคริปต์เช่น โดยไม่ต้องอ่านบรรทัดของการป้อนข้อมูลอื่น
หมายเหตุดังต่อไปนี้
sed
อ่านสายของแฟ้มใส่หนึ่งโดยหนึ่งในการสั่งซื้อที่เริ่มต้นจากสายที่ 1 ;
:a
เป็นเพียงป้ายกำกับไม่ใช่คำสั่งที่จะดำเนินการ
N
โดยหลักการแล้วจะดำเนินการในบรรทัดใดก็ได้ แต่
s/\n/ /
(ในหลักการที่ดำเนินการบนบรรทัดใด ๆ ) จะประสบความสำเร็จในบรรทัดใด ๆ แต่สุดท้ายจะเป็นเช่นนั้น
ta
ทำให้จุดสิ้นสุดของสคริปต์เข้าถึงได้เฉพาะเมื่อบรรทัดสุดท้ายของอินพุตถูกอ่าน (บรรทัดเดียวที่s
ล้มเหลว) ดังนั้น
- จะไม่มีการอ่านบรรทัดอินพุตเพิ่มเติมในพื้นที่รูปแบบหลังจากอ่านบรรทัดที่1ยกเว้นว่ามีการอ่านบรรทัดสุดท้ายแต่ไม่มีบรรทัดเพิ่มเติมที่จะอ่านและ
p
คำสั่งimplicit จะถูกดำเนินการ
ดังนั้นโดยทั่วไปสคริปต์จะอ่านในบรรทัดที่ 1ของอินพุตและต่อท้ายบรรทัดต่อไปนี้ทีละหนึ่งทุกครั้งที่แทนที่บรรทัดใหม่ด้วยช่องว่าง; หลังจากบรรทัดสุดท้ายถูกต่อท้าย (และ\n
เปลี่ยนเป็นช่องว่าง) N
ไม่สามารถต่อท้ายบรรทัดใด ๆs
ล้มเหลวta
ถูกข้ามไปถึงจุดสิ้นสุดของสคริปต์และp
คำสั่ง rint โดยนัยจะถูกดำเนินการบนพื้นที่รูปแบบ looong 1 บรรทัดปัจจุบัน .
-i
ตัวเลือกทดแทนแฟ้มใส่file
กับพื้นที่รูปแบบ 1 เส้นทั้ง