Wie zähle ich die Anzahl der Zeilen einer Ausgabe?

30

Angenommen, ich habe das Programm:

Calculate.py

Gibt es eine Unix-Befehlszeile, die die Anzahl der von meinem Programm ausgegebenen Zeilen zählt, Calculate.py?

MEhsan
quelle

Antworten:

51

Sie können die Ausgabe an leiten wc. Sie können das -lFlag verwenden, um Zeilen zu zählen. Führen Sie das Programm normal aus und verwenden Sie eine Pipe, um zu umzuleitenwc.

python Calculate.py | wc -l

Alternativ können Sie die Ausgabe Ihres Programms beispielsweise in eine Datei umleiten calc.outund wcauf dieser Datei ausführen .

python Calculate.py > calc.out
wc -l calc.out
cutrightjm
quelle
3
Es sind kleine Dinge wie diese, die das Piping so verdammt stark machen. Wir würden uns bemühen, diese Interoperabilität wieder in die Softwareentwicklung einfließen zu lassen, worum es wohl bei der funktionalen Programmierung geht.
Joshua Pinter
1
@JoshuaPinter auf der anderen Seite und wenn Sie nur die Anzahl der Zeilen in eine andere Funktion leiten möchten, müssen Sie jetzt die Ausgabe von manuell analysieren wc. cut -f1 -d' 'Zum Glück ist dies einfach ( ), aber nicht für jeden Befehl gilt das Gleiche. Für den Powershell-Ansatz, die Befehlszeile primitiv zu einem "Objekt" und nicht zu einem Textstrom zu machen, ist etwas zu sagen.
Shadowtalker
@shadowtalker Ich kenne Powershell nicht, aber es macht Sinn , objects anstelle von Strings zu übergeben. Irgendwann möchte ich mehr über Kommandozeilen-Tools erfahren.
Joshua Pinter
1

Über communic (wc -l) werden auch die leeren Zeilen gezählt. Verwenden Sie also besser den folgenden Befehl, der die leeren Zeilen löscht und zählt

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