如何计算管道分隔文件中包含数据的行数?

如何计算管道分隔文件中包含数据的行数?

我有一个这样的文件

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

如何计算第三列中有数据的行数?

答案1

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

在样本输入上,结果是:

2

它的工作原理是将字段分隔符设置为管道,然后count在第三个字段中具有非空值的行上递增。在文件末尾,它打印最终的count.

答案2

使用软件工具:

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

假设第 3 列只有一个单词,没有空格。如果可能有空格,这应该有效:

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

相关内容