[英]How to use awk to delete lines of file1 whose column 1 values exist in file2 in Ubuntu?
[英]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.