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

标签 linux unix awk

我得到一个 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/

相关文章:

awk 计算文件列中的行数

awk - Sed/awk : how to find and remove two lines if a pattern in the first line is being repeated; bash

linux下html转chm文件

php - 在 PHP 中使用实时输出运行进程

php - 从 PHP 中使用 sudo 运行 shell 脚本

c++ - 与共享库链接时,向可执行文件添加了什么?

command-line - 使用 sed 或 awk 从标签搜索模式并将其插入到下一行

php - 如何使用 php 从 Ubuntu 访问 Windows 驱动器中的远程文件

c - 如何确定客户端是否已连接到我的套接字?

bash - 嵌套的 rsync --include 和 --exclude 规则,是否应该通过多个命令来实现?