我有以下文件(名为/ tmp / test99),其中包含以下行:
"0","15","wall15"
123132,09808098,"0","15"
我正在尝试过滤包含第3位“ 0”和第4位“ 15”的行(例如第二行) 我尝试运行:
cat /tmp/test99 | awk '/"0","15"/{print>"/tmp/0_15_file.out"} '
但是我得到的不是第一行,而是从"0","15"
开始的第一行。
您能帮忙吗? 谢谢:)
答案 0 :(得分:2)
您可以使用来检查字段3和4是否等于某个硬编码值
awk -F, '$3=="\"0\"" && $4=="\"15\""'
将字段分隔符设置为逗号,然后,如果字段3为"0"
,而字段4为"15"
,则打印该行,否则丢弃。
请参见online demo:
s='"0","15","wall15"
123132,09808098,"0","15"'
awk -F, '$3=="\"0\"" && $4=="\"15\""' <<< "$s"
# => 123132,09808098,"0","15"
答案 1 :(得分:1)
请尝试以下操作。(请注意,您无需将cat
与awk
一起使用,它可以自己读取Input_file)
awk -F, '$3!~/\"0\"/ && $4!~/\"15\"/' Input_file