我得到一个 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
关于linux - 如何使用 awk 打印第三列值等于 "0"而不是 0 的所有行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25415363/