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

时间:2016-10-10 19:42:41

标签: shell awk grep ksh

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

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

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

COUNT=$('awk '' $DATAFILE | wc -l')
COUNT=$('grep -e '.*,.*,,' $DATAFILE' | wc -l)

2 个答案:

答案 0 :(得分:1)

.pgRow {
  background:yellow;
  display: flex;  /* make the row a flex container */
  align-items: center; /* vertically center each flex item in the container */
}

答案 1 :(得分:1)

你的grep有很多引用:

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

会有点工作,但你不想让一行与emty第四个字段匹配。

似乎更好

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

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

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

您的问题没有说明这种情况,您认为这是第三场?那将是另一个问题。

编辑: @Sundeep评论正确,你可以使用grep -c,避免使用wc -l。我试图在OP的答案中显示错误,但我应该添加使用-c的建议。