Làm thế nào để đếm số lượng dòng của một đầu ra?


30

Hãy nói rằng tôi có chương trình:

Calculate.py

Có một dòng lệnh unix nào đếm số lượng dòng được xuất ra từ chương trình của tôi không, tính toán?

Câu trả lời:


51

Bạn có thể dẫn đầu ra vào wc. Bạn có thể sử dụng -lcờ để đếm dòng. Chạy chương trình bình thường và sử dụng một đường ống để chuyển hướng đếnwc.

python Calculate.py | wc -l

Ngoài ra, bạn có thể chuyển hướng đầu ra của chương trình sang một tệp, giả sử calc.outvà chạy wctrên tệp đó.

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

3
Chính những điều nhỏ nhặt như thế này khiến đường ống trở nên mạnh mẽ. Chúng tôi làm rất tốt để đưa khả năng tương tác này trở lại phát triển phần mềm, mà tôi cho rằng đó là tất cả những gì về Lập trình chức năng.
Joshua Pinter

1
@JoshuaPinter trên thand khác nếu bạn chỉ muốn chuyển số lượng dòng thành một chức năng khác, bây giờ bạn cần phải phân tích thủ công đầu ra của wc. Đáng thương điều này là dễ dàng ( cut -f1 -d' '), nhưng điều tương tự không đúng với mọi lệnh. Có điều gì đó để nói về cách tiếp cận Powershell về việc biến dòng lệnh nguyên thủy thành một "đối tượng", thay vì một luồng văn bản.
Shadowtalker

@shadowtalker Tôi không quen thuộc với Powershell nhưng việc chuyển objects thay vì Strings có ý nghĩa. Tại một số điểm tôi muốn đi sâu vào công cụ dòng lệnh nhiều hơn.
Joshua Pinter

1

Giao tiếp trên (wc -l) cũng sẽ tính các dòng trống. Vì vậy, tốt hơn để sử dụng lệnh dưới đây sẽ xóa các dòng trống và đếm nó

python Calculate.py |sed '/^$/d'| awk '{print NR}'| sort -nr| sed -n '1p'
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.