与精确列内容匹配的Awk打印

与精确列内容匹配的Awk打印,awk,Awk,我只想匹配“11”,而不是“11.0”的值25。任何提示?与整个字段匹配: echo -e "55 11\n25 11.0" | awk '$2 ~ /11/{print $1}' 如果您确实希望数字匹配,那么当然不应该使用正则表达式(您当前的正则表达式也将匹配6119.42): 确保最后一个字段不包含小数点 echo -e "55 11\n25 11.0" | awk '$2 ~ /^11$/ {print $1}' +1对于==——您不需要为所有内容都使用正则表达式。鉴于问题的标题是“打

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

与整个字段匹配:

echo -e "55 11\n25 11.0" | awk '$2 ~ /11/{print $1}'
如果您确实希望数字匹配,那么当然不应该使用正则表达式(您当前的正则表达式也将匹配6119.42):


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

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

+1对于
==
——您不需要为所有内容都使用正则表达式。鉴于问题的标题是“打印匹配精确的列内容”,这有点太随意了。@Johnsyweb我同意,我找不到比您更好的解决方案,所以尝试解决它。我是否应该继续删除它?
% echo -e "55 11\n25 11.0" | awk '$2 == 11 { print $1 }'
55
25
echo -e "55 11\n25 11.0" | awk '$2 ~ /^11$/ {print $1}'
[jaypal:~/Temp] echo -e "55 11\n25 11.0" | awk '$NF!~/\./{print $1}'
55