Awk打印匹配精确的列内容

时间:2012-01-12 03:20:18

标签: awk

echo -e "55 11\n25 11.0" | awk '$2 ~ /11/{print $1}'

我只想匹配“11”,而不是“11.0”的值25.任何提示?

3 个答案:

答案 0 :(得分:5)

匹配整个领域:

% echo -e "55 11\n25 11.0" | awk '$2 ~ /^11$/{print $1}'
55

如果 想要在数字上匹配,那么你当然不应该使用正则表达式(你当前的那个也会匹配6119.42):

% echo -e "55 11\n25 11.0" | awk '$2 == 11 { print $1 }'
55
25

答案 1 :(得分:0)

echo -e "55 11\n25 11.0" | awk '$2 ~ /^11$/ {print $1}'

答案 2 :(得分:0)

确保最后一个字段不包含小数点。

[jaypal:~/Temp] echo -e "55 11\n25 11.0" | awk '$NF!~/\./{print $1}'
55