我的csv文件格式如下:
"hWcYw",1,"1","5HleiJXMsFkGEsr8Jqr3Ug",1
"hWcYw",1,"1","rCDlYd2WHJuiT05sYGxaVA",2
"m1oKE",1,"0","5HleiJXMsFkGEsr8Jqr3Ug",1
"1oKE0",1,"0","rCDlYd2WHJuiT05sYGxaVA",2
我想得到第三列值为“0”的行,注意它是“0”,引号不是0。
我试过
awk '$3 == 0' file.csv
awk '$3 == "0"' file.csv
但不起作用。有任何想法吗?提前
答案 0 :(得分:3)
试试这个:
awk -F"," '$3 == "\"0\""' file.csv
如果没有指定FS
(字段分隔符),awk默认使用空格,因此您尝试的第一个问题是您只有一个字段。在这里,我使用-F","
从命令行指定FS
值。其次,你只需要转义双引号,因为双引号可用于为模式匹配制作有效的awk正则表达式字符串。
你也可以使用不同的格式进行模式匹配,你不需要转义你想要匹配的双引号:
awk -F"," '$3 ~ /"0"/' file.csv
答案 1 :(得分:-1)
perl版本:
$ perl -F, -lane 'print $_ if $F[2]=~/^"0"/' example.txt
"m1oKE",1,"0","5HleiJXMsFkGEsr8Jqr3Ug",1
"1oKE0",1,"0","rCDlYd2WHJuiT05sYGxaVA",2