パイプで区切られたファイルからデータを含む行数を計算する方法は?

パイプで区切られたファイルからデータを含む行数を計算する方法は?

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

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

3番目の列にデータを含む行数を計算する方法は?

答え1

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

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

2

フィールド区切り記号をパイプに設定し、3番目のフィールドcountでnull以外の値を持つ行を増やすように機能します。ファイルの最後に最終的なcount

答え2

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

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

列 3 には単語が 1 つだけあり、空白がないとします。空白がある場合は、次のように動作します。

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

関連情報