出力の行数をカウントする方法は?


30

私がプログラムを持っているとしましょう:

Calculate.py

私のプログラムCalculate.pyから出力された行数をカウントするUNIXコマンドラインはありますか?

回答:


51

出力をにパイプできwcます。-lフラグを使用して行をカウントできます。通常どおりプログラムを実行し、パイプを使用してリダイレクトしますwc.

python Calculate.py | wc -l

あるいは、プログラムの出力をファイル(たとえばcalc.out、)にリダイレクトし、wcそのファイルで実行することもできます。

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

3
パイピングを非常に強力にするのは、このような小さなことです。私たちはこの相互運用性をソフトウェア開発に持ち帰りたいと思っています。これが関数型プログラミングのすべてだと思います。
ジョシュアピンター

1
他の関数の@JoshuaPinterは、単に行数を別の関数にパイプする場合、の出力を手動で解析する必要がありますwc。ありがたいことに、これは簡単(cut -f1 -d' ')ですが、すべてのコマンドで同じとは限りません。コマンドラインプリミティブをテキストストリームではなく「オブジェクト」にするというPowershellのアプローチには、何か言いたいことがあります。
シャドウトーカー

@shadowtalker私はPowershellに精通していませんが、objectsの代わりにStrings を渡すのは理にかなっています。ある時点で、より多くのコマンドラインツールに深く入りたいと思います。
ジョシュアピンター

1

上記の通信(wc -l)も空行をカウントします。空の行を削除してカウントする以下のコマンドを使用する方が良い

python Calculate.py |sed '/^$/d'| awk '{print NR}'| sort -nr| sed -n '1p'
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.