Як підрахувати кількість ліній виводу?


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
Такі маленькі речі роблять трубопроводи настільки чортовими потужними. Ми зробили б добре, щоб повернути цю сумісність до розробки програмного забезпечення, і, напевно, це те, про що йдеться у функціональному програмуванні.
Джошуа Пінтер

1
@JoshuaPinter з іншого боку, якщо ви просто хочете передати кількість рядків в іншу функцію, вам тепер потрібно вручну проаналізувати вихід wc. Милостиво це легко ( cut -f1 -d' '), але те ж саме не стосується кожної команди. Щось слід сказати для підходу Пауершелла, щоб зробити командний рядок примітивним "об'єктом", а не текстовим потоком.
shadowtalker

@shadowtalker Я не знайомий з Powershell, але передача objects замість Strings має сенс. У якийсь момент я хотів би зануритися в більш глибокий інструментарій командного рядка.
Джошуа Пінтер

1

Вище спілкування (wc -l) також буде рахувати порожні рядки. тому краще скористатися командою нижче, яка видаляє порожні рядки та порахує її

python Calculate.py |sed '/^$/d'| awk '{print NR}'| sort -nr| sed -n '1p'
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.