CSV中的输出行,其中特定列不为空,而另一列为

时间:2018-08-21 08:17:25

标签: bash csv awk

我有一些CSV,其前七列如下:

ID,SerialNo,SortKey,BookTitle,BookSubtitle,AuthorName,EditorName

我需要输出AuthorName为空而EditorName不是的所有行。所需的最终结果是output.csv,其中仅包含下面三个的第二行。

123,789,1,War and Peace,A novel,Tolstoy,
456,987,2,Oxford English Dictionary,A book of words,,Oxford editors
789,123,3,Romeo and Juliet,A play,Shakespeare,

我正在使用Windows的Gitbash。有awk解决方案吗?

1 个答案:

答案 0 :(得分:1)

使用,作为我们的字段分隔符,您要查询其中字段6不存在(!$6)和字段7存在($7)的行,给出:

awk -F, '!$6 && $7' input.csv