awk中的多模式识别

时间:2015-01-18 01:16:53

标签: bash awk

我有一个格式如下的文件:

COL1 COL2 COL3 COL4 

我对COL2(字符串)和COL4(数字)感兴趣。 我需要同时验证COL2="PATTERN"COL4没有小数= 32(例如)。

我知道如何进行COL2模式识别,例如:

awk -F"\t" '$2="PATTERN" {print }' file

但是我没有强加第二个条件或两者兼而有之。

欢迎任何解决此问题的帮助。

由于

2 个答案:

答案 0 :(得分:1)

试试这个:

awk '$2 == "pattern" && int($4) == 32 {print $4}' file

我在这里做了一个测试并且有效:

echo "foo1 foo2 foo3 123.43" | awk '$2 == "foo2" && int($4) == 123 {print $4}'
output: 123.43

答案 1 :(得分:0)

第二个条件是^[0-9]$。使用&&链接正则表达式。