วิธีการนับจำนวนบรรทัดของผลลัพธ์


30

สมมติว่าฉันมีโปรแกรม:

Calculate.py

มีบรรทัดคำสั่ง unix ที่นับจำนวนบรรทัดที่เอาท์พุทจากโปรแกรมของฉันคือ Calculate.py หรือไม่?

คำตอบ:


51

wcคุณสามารถท่อส่งออกในการ คุณสามารถใช้การ-lตั้งค่าสถานะเพื่อนับบรรทัด เรียกใช้โปรแกรมตามปกติและใช้ไพพ์เพื่อเปลี่ยนเส้นทางwc.

python Calculate.py | wc -l

หรือคุณสามารถเปลี่ยนเส้นทางผลลัพธ์ของโปรแกรมเป็นไฟล์พูดcalc.outและเรียกใช้wcไฟล์นั้น

python Calculate.py > calc.out
wc -l calc.out

3
มันเป็นสิ่งเล็ก ๆ น้อย ๆ เช่นนี้ที่ทำให้ท่อมีพลังมาก เราจะทำตัวเองให้ดีเพื่อนำความสามารถในการทำงานร่วมกันกลับมาใช้กับการพัฒนาซอฟต์แวร์ซึ่งฉันคิดว่าเป็นหน้าที่ของ Programming Programming
Joshua Pinter

1
@JoshuaPinter บน thand อื่น ๆ wcหากคุณต้องการเพียงแค่ท่อจำนวนบรรทัดในการทำงานอีกตอนนี้คุณต้องด้วยตนเองแยกการส่งออกของ นี่เป็นเรื่องง่าย ( cut -f1 -d' ') แต่สิ่งนี้ไม่เป็นความจริงสำหรับทุกคำสั่ง มีบางอย่างที่จะกล่าวว่าสำหรับวิธี Powershell ในการทำให้บรรทัดคำสั่งดั้งเดิมเป็น "วัตถุ" แทนที่จะเป็นสตรีมข้อความ
shadowtalker

@shadowtalker ฉันไม่คุ้นเคยกับ Powershell แต่ผ่านobjects แทนที่จะStringทำให้รู้สึก เมื่อถึงจุดหนึ่งฉันต้องการที่จะดำดิ่งลงไปในเครื่องมือบรรทัดคำสั่งเพิ่มเติม
Joshua Pinter

1

การสื่อสารข้างต้น (wc -l) จะนับบรรทัดว่างเปล่าเช่นกัน ดังนั้นควรใช้คำสั่งด้านล่างที่ดีกว่าซึ่งจะลบบรรทัดว่างและนับมัน

python Calculate.py |sed '/^$/d'| awk '{print NR}'| sort -nr| sed -n '1p'
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.