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


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' '), но это не так для каждой команды. Есть кое-что, что можно сказать о подходе Powershell, делающем примитив командной строки «объектом», а не текстовым потоком.
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.