CSV 在第三列 KSH 中找到空白值

CSV find blank value in third column KSH

您好,我的数据集很简单,如下所示

4,a,1.5
t,6,,
6,t,h

我正在尝试使用 awk 或 grep 来计算第三列中有空白的行。在这种情况下,它将是 1,因为到目前为止,我在下面尝试过的列中只有中间一个有空白。登录尝试使用 awk 搜索空白字符串,然后使用 grep 查找第三列中有空白的地方进行计数,然后对其进行计数。

COUNT=$('awk '' $DATAFILE | wc -l')
COUNT=$('grep -e '.*,.*,,' $DATAFILE' | wc -l)
awk -F, '==""{c++} END{print c+0}' file

你的 grep 引号太多了:

count=$(grep -E ".*,.*,," $DATAFILE | wc -l)

会有点工作,但您不想匹配第四个字段为空的行。

似乎更好

count=$(grep -E "^[^,]*,[^,]*,," $DATAFILE | wc -l)

这仍然会给输入带来问题,例如

field1,"field 2 with , insides quotes",,

你的问题没有提到这种情况,你认为这里的第三场是什么?那将是另一个问题。

编辑: @Sundeep 评论正确,您可以使用 grep -c,避免使用 wc -l。我试图说明 OP 的回答有什么问题,但我应该添加使用 -c.

的建议