วิธีการพิมพ์แบบ sed ถึงจุดสิ้นสุดของบรรทัดจาก socat
ฉันมีเซิร์ฟเวอร์ที่ส่งข้อมูลในการออกอากาศ UDP บนพอร์ต 1,0552 ข้อมูลคือ 7 ตัวเลขคั่นด้วยเครื่องหมายจุลภาคดังนั้น 5.351204,0.001968,-0.000473,-0.999222,0.000451,0.001455,1.084310 ฉันดึงข้อมูลนี้ด้วย socat -u udp-recv:10552,reuseaddr - ฉันต้องการเปลี่ยนรูปแบบของข้อมูลนี้ดังนั้นฉันจะทำให้เป็นข้อมูล ฉันไม่สนใจหมายเลขแรกดังนั้นฉันจึงลบออกด้วย s/[^,]*,//; ฉันเพิ่มช่องว่างหลังเครื่องหมายจุลภาคด้วย s/,/, /g ฉันจะเพิ่มวงเล็บเปิดไว้ที่จุดเริ่มต้นของแต่ละบรรทัดด้วย s/^/(/ ในที่สุดฉันพยายามที่จะเพิ่มวงเล็บปิดลงที่ท้ายบรรทัดแต่ละบรรทัดด้วย s/$/)/ คำสั่งสุดท้ายกลายเป็น socat -u udp-recv:10552,reuseaddr - | sed 's/[^,]*,//;s/,/, /g;s/^/(/;s/$/)/' ทุกอย่างทำงานได้ตามที่คาดไว้ยกเว้นวงเล็บปิดสุดท้ายจะปรากฏขึ้นที่จุดเริ่มต้นของแต่ละบรรทัดดังนั้นจึงดูเหมือน )0.051727, -0.595779, -0.794678, 0.082047, 0.644327, -0.027242 การลบบิตสุดท้ายของคำสั่งสำหรับ socat -u udp-recv:10552,reuseaddr - | sed 's/[^,]*,//;s/,/, /g;s/^/(/;' ผลลัพธ์ใน (0.079330, …