丢弃没有6个双引号的行

时间:2017-06-07 11:21:59

标签: bash awk sed grep

我有一个CSV文件,里面有一些错误。我想要做的是忽略所有没有6个双引号(")的行。

简而言之,它应该是类似的东西;

cat output.txt | grep -v '"*"*"*"*"*"' 

当然上面的命令不会起作用..但这是我正在思考的方向......也许AWK会是更好的选择吗?

1 个答案:

答案 0 :(得分:4)

*是glob模式而不是正则表达式模式。

您可以在grep中使用此正则表达式:

grep -Ev '^([^"]*"){6}' file

使用awk,您可以使用"作为输入字段分隔符:

awk -F '"' 'NF<7' file