Как посчитать количество строк на выходе?

30

Допустим, у меня есть программа:

Calculate.py

Есть ли в Unix командная строка, которая подсчитывает количество строк, выведенных из моей программы Calculate.py?

MEhsan
источник

Ответы:

51

Вы можете направить вывод в wc. Вы можете использовать -lфлаг для подсчета строк. Запустите программу как обычно и используйте канал для перенаправления наwc.

python Calculate.py | wc -l

Кроме того, вы можете перенаправить вывод вашей программы в файл, скажем calc.out, и запустить wcна этом файле.

python Calculate.py > calc.out
wc -l calc.out
cutrightjm
источник
3
Такие мелочи делают этот трубопровод таким чертовски мощным. Мы сделаем все возможное, чтобы вернуть эту функциональную совместимость обратно в разработку программного обеспечения, что, я полагаю, является основной целью функционального программирования.
Джошуа Пинтер
1
@JoshuaPinter, с другой стороны, если вы просто хотите передать количество строк в другую функцию, теперь вам нужно вручную проанализировать вывод wc. К счастью, это легко ( cut -f1 -d' '), но это не так для каждой команды. Есть кое-что, что можно сказать о подходе Powershell, делающем примитив командной строки «объектом», а не текстовым потоком.
Shadowtalker
@shadowtalker Я не знаком с Powershell, но передача objects вместо Strings имеет смысл. В какой-то момент я хотел бы углубиться в дополнительные инструменты командной строки.
Джошуа Пинтер
1

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

python Calculate.py |sed '/^$/d'| awk '{print NR}'| sort -nr| sed -n '1p'
Правин Кумар Б.С.
источник