"A","B",123,"C","AAB"
"A","BB",234,"CC","BA"
"AA","B",123,"CC","CBB"
"AA","BB",213,"C","CCA"
我想获得$ 1 == AA
的那些行 awk 'BEGIN { FS = ","; OFS = FS;} {if ($1=="AA") print}'
但它不起作用。如果数据在双引号中不,则它可以正常工作。
答案 0 :(得分:1)
关注awk
可能对您有帮助。
awk -F, '{val=$1;gsub(/\"/,"",val)} val=="AA"' Input_file
解决方案第二:
awk -F"[\",]" '$2=="AA"' Input_file
答案 1 :(得分:1)
只需将文字"
与转义字符匹配即可。这是 直接过滤器,用于匹配第一列上的文字"AA"
。由于awk
基于pattern { action }
工作,因此条件匹配以查看第一列是"AA"
是否可以直接完成而无需使用显式{ print }
如果该行满足条件,则awk
的条件为awk 1 file
,在这种情况下会打印该行。
awk -v FS=, '$1=="\"AA\""' file
此外,您可以通过将匹配字符串放在单引号下的变量中并让它与变量匹配来避免转义
awk -v FS=, -v m='"AA"' '$1==m' file