Come contare il numero di linee di un output?


30

Diciamo che ho il programma:

Calculate.py

Esiste una riga di comando unix che conta il numero di righe emesse dal mio programma, Calculate.py?

Risposte:


51

È possibile reindirizzare l'output a wc. Puoi usare la -lbandiera per contare le linee. Esegui il programma normalmente e usa una pipe per reindirizzarewc.

python Calculate.py | wc -l

In alternativa, puoi reindirizzare l'output del tuo programma su un file, ad esempio calc.out, ed eseguirlo wcsu quel file.

python Calculate.py > calc.out
wc -l calc.out

3
Sono piccole cose come questa che rendono le tubazioni così dannatamente potenti. Faremmo del nostro meglio per riportare questa interoperabilità allo sviluppo del software, che suppongo sia la programmazione funzionale.
— Joshua Pinter,

1
@JoshuaPinter dall'altro lato, se si desidera semplicemente reindirizzare il numero di righe in un'altra funzione, ora è necessario analizzare manualmente l'output di wc. Per fortuna questo è facile ( cut -f1 -d' '), ma lo stesso non è vero per ogni comando. C'è qualcosa da dire per l'approccio Powershell di rendere la riga di comando primitiva un "oggetto", piuttosto che un flusso di testo.
— Shadowtalker,

@shadowtalker Non ho familiarità con Powershell ma passare objects invece di Strings ha senso. Ad un certo punto mi piacerebbe immergermi in profondità in più strumenti da riga di comando.
— Joshua Pinter,

1

Sopra communic (wc -l) conterà anche le righe vuote. quindi è meglio usare il comando sottostante che cancella le righe vuote e lo conta

python Calculate.py |sed '/^$/d'| awk '{print NR}'| sort -nr| sed -n '1p'
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.