使用awk模式归档过滤器数据

时间:2018-11-02 13:37:02

标签: awk awk-formatting

我有以下文件(名为/ 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"开始的第一行。

您能帮忙吗? 谢谢:)

2 个答案:

答案 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)

请尝试以下操作。(请注意,您无需将catawk一起使用,它可以自己读取Input_file)

awk -F, '$3!~/\"0\"/ && $4!~/\"15\"/' Input_file