การเพิ่มบรรทัดว่างที่ส่วนท้ายของอินพุต


11

ฉันมีคำสั่งบางอย่างที่สร้างเอาต์พุตโดยไม่มีบรรทัดใหม่ในตอนท้ายเช่นนี้

Myprompt$ somecmd
dksfjdl
dsfjdlkfj
dsfjdkfj
dfjdkfjMyprompt$

ตอนนี้ฉันเอาชนะมันได้โดยวิธีนี้somecmd | sed 's/$/\n/' | tr -s '\n' มีวิธีที่ดีกว่าไหม?

คำตอบ:


19

เพียงแค่เรียกใช้ echo หลังจากนั้นก็ควรสร้างขึ้นบรรทัดใหม่

Myprompt$ somecmd ; echo

และถ้าคุณต้องการให้มันกินอย่างอื่นให้รันมันใน sub-shell:

Myprompt$ ( somecmd ; echo ) | someothercmd

หรือ .. ตามที่ @camh ชี้ให้เห็นว่า subshell นั้นไม่จำเป็นจริง ๆ คุณสามารถดำเนินการได้ด้วยรายการคำสั่งในสภาพแวดล้อมเชลล์ปัจจุบันด้วย:

Myprompt$ { somecmd ; echo ; } | someothercmd

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.