Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 删除列数少于7且第二列为空的行_Bash_Awk - Fatal编程技术网

Bash 删除列数少于7且第二列为空的行

Bash 删除列数少于7且第二列为空的行,bash,awk,Bash,Awk,我需要从csv中删除少于7个字段的所有行以及第二列为空的行 V8, 5,2015-01-14,3.7,-0.8,0.2,7.2 CT,,,,,, R1, 6,2015-01-14,9.7,-1.0,0.0,14.4 Z8, 5 ,2015-01-14,1.4,-4.0,0.1,54.4 XL, 5,2015-01-14,15.0,6.4,0.0,27.7 D9, 6,2015-01-14,16.4,2.6,0.0,34.6 XM, 6,2015-01-14,2.2,-0.2,0.2,9.0 ZC

我需要从csv中删除少于7个字段的所有行以及第二列为空的行

V8, 5,2015-01-14,3.7,-0.8,0.2,7.2
CT,,,,,,
R1, 6,2015-01-14,9.7,-1.0,0.0,14.4
Z8, 5 ,2015-01-14,1.4,-4.0,0.1,54.4
XL, 5,2015-01-14,15.0,6.4,0.0,27.7
D9, 6,2015-01-14,16.4,2.6,0.0,34.6
XM, 6,2015-01-14,2.2,-0.2,0.2,9.0
ZC, 5 ,2015-01-14,
,
,
我有7个字段(列)

我尝试了下一个命令来删除少于7个字段/列的行,但没有运行

awk -F"," 'NF>=7' 2015-01-14.csv 

有什么帮助吗?

您可以试试下面的

$ awk -F, 'NF>=7 && $2 != ""' file
V8, 5,2015-01-14,3.7,-0.8,0.2,7.2
R1, 6,2015-01-14,9.7,-1.0,0.0,14.4
Z8, 5 ,2015-01-14,1.4,-4.0,0.1,54.4
XL, 5,2015-01-14,15.0,6.4,0.0,27.7
D9, 6,2015-01-14,16.4,2.6,0.0,34.6
XM, 6,2015-01-14,2.2,-0.2,0.2,9.0

这将打印包含7个或更多字段的行,并且第二个字段不会为空。

您说的“不运行”是什么意思?对不起,我的意思是这两种方式都不起作用,需要弄清楚实际问题是什么。问:
您说的“不运行”是什么意思?
A:
对不起,我的意思是它不起作用。经典:-)@肯特,如果$2填充了一个数值计算为零的值,那就失败了。@EdMorton!我忽略了那部分。。。。羞耻。
$ awk -F, 'NF>=7 && $2 != ""' file
V8, 5,2015-01-14,3.7,-0.8,0.2,7.2
R1, 6,2015-01-14,9.7,-1.0,0.0,14.4
Z8, 5 ,2015-01-14,1.4,-4.0,0.1,54.4
XL, 5,2015-01-14,15.0,6.4,0.0,27.7
D9, 6,2015-01-14,16.4,2.6,0.0,34.6
XM, 6,2015-01-14,2.2,-0.2,0.2,9.0