繁体   English   中英

如何使用awk打印第三列值等于“ 0”而不是0的所有行?

[英]How to use awk to print all lines whose third column value equals “0” instead of 0?

我得到的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

但不起作用。 有任何想法吗? 提前

尝试这个:

awk -F"," '$3 == "\"0\""' file.csv

如果不指定FS (字段分隔符),则默认值是awk使用空格,因此,尝试的第一个问题是只有一个字段。 在这里,我使用-F","从命令行指定FS值。 其次,您只需要转义双引号即可,因为双引号可用于制作有效的awk正则表达式字符串以进行模式匹配。

您也可以为模式匹配使用其他格式,在这种情况下,您无需转义要匹配的双引号:

awk -F"," '$3 ~ /"0"/' file.csv

Perl版本:

$ perl -F, -lane   'print $_ if $F[2]=~/^"0"/' example.txt
"m1oKE",1,"0","5HleiJXMsFkGEsr8Jqr3Ug",1
"1oKE0",1,"0","rCDlYd2WHJuiT05sYGxaVA",2

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM