web-dev-qa-db-ja.com

パイプ区切りファイルにデータがある行の数を数える方法は?

このようなファイルがあります

1|2345|John|Smith
2|4563||Smith
3|5968||Doe
4|896|Rick|Lawson
5|889||Eddy

3番目の列にデータがある行の数を数えるにはどうすればよいですか?

4
Bala
awk -F '|' 'length($3) { ++count } END { print count }' < input

サンプル入力では、次の結果になります。

2

フィールドセパレータをパイプに設定することで機能し、3番目のフィールドに空でない値がある行でcountをインクリメントします。ファイルの最後に、最後のcountを出力します。

8
Jeff Schaller

ソフトウェアツールの使用:

cut -d '|' -f 3 input | wc -w

これは、列3がスペースのない1つの単語のみであることを前提としています。スペースがあるかもしれない場合、これはうまくいくはずです:

cut -d '|' -f 3 data | grep -c .
3
agc