¿Cómo contar el número de líneas de una salida?

30

Digamos que tengo el programa:

Calculate.py

¿Existe una línea de comandos de Unix que cuente el número de líneas generadas por mi programa, Calculate.py?

MEhsan
fuente

Respuestas:

51

Puede canalizar la salida a wc. Puede usar la -lbandera para contar líneas. Ejecute el programa normalmente y use una tubería para redirigir awc.

python Calculate.py | wc -l

Alternativamente, puede redirigir la salida de su programa a un archivo, digamos calc.out, y ejecutarlo wcen ese archivo.

python Calculate.py > calc.out
wc -l calc.out
cutrightjm
fuente
3
Son pequeñas cosas como esta las que hacen que la tubería sea tan poderosa. Nos haríamos bien en devolver esta interoperabilidad al desarrollo de software, lo que supongo es de lo que se trata la programación funcional.
Joshua Pinter
1
@JoshuaPinter por otro lado y si solo desea canalizar el número de líneas en otra función, ahora necesita analizar manualmente la salida de wc. Afortunadamente, esto es fácil ( cut -f1 -d' '), pero lo mismo no es cierto para cada comando. Hay algo que decir sobre el enfoque Powershell de hacer que la línea de comando sea primitiva como un "objeto", en lugar de una secuencia de texto.
shadowtalker
@shadowtalker No estoy familiarizado con Powershell, pero pasar objects en lugar de Strings tiene sentido. En algún momento me gustaría profundizar en más herramientas de línea de comando.
Joshua Pinter
1

La comunicación anterior (wc -l) también contará las líneas vacías. así que es mejor usar el siguiente comando que elimina las líneas vacías y lo cuenta

python Calculate.py |sed '/^$/d'| awk '{print NR}'| sort -nr| sed -n '1p'
Praveen Kumar BS
fuente