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.