Como contar o número de linhas de uma saída?

30

Digamos que eu tenha o programa:

Calculate.py

Existe uma linha de comando unix que conta o número de linhas emitidas pelo meu programa, Calculate.py?

MEhsan
fonte

Respostas:

51

Você pode canalizar a saída para wc. Você pode usar a -lbandeira para contar linhas. Execute o programa normalmente e use um canal para redirecionar parawc.

python Calculate.py | wc -l

Como alternativa, você pode redirecionar a saída do seu programa para um arquivo, digamos calc.out, e executar wcnesse arquivo.

python Calculate.py > calc.out
wc -l calc.out
cutrightjm
fonte
3
São pequenas coisas como essas que tornam a tubulação tão poderosa. Faríamos bem a nós mesmos para trazer essa interoperabilidade de volta ao desenvolvimento de software, que eu suponho que é a programação funcional.
Joshua Pinter
11
@ JoshuaPinter, por outro lado, se você quiser canalizar o número de linhas para outra função, agora você precisará analisar manualmente a saída de wc. Felizmente, isso é fácil ( cut -f1 -d' '), mas o mesmo não é verdadeiro para todos os comandos. Há algo a ser dito para a abordagem do Powershell de tornar a linha de comando primitiva um "objeto", em vez de um fluxo de texto.
shadowtalker
@shadowtalker Não estou familiarizado com o Powershell, mas passar objects em vez de Strings faz sentido. Em algum momento, gostaria de me aprofundar em mais ferramentas de linha de comando.
Joshua Pinter
1

Acima de comunicar (wc -l) também contarão as linhas vazias. então é melhor usar o comando abaixo, que exclui as linhas vazias e conta

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