awk 打印匹配精确的列内容

标签 awk

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

我只想匹配“11”,而不是“11.0”的值 25。有什么提示吗?

最佳答案

匹配整个字段:

% 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

关于awk 打印匹配精确的列内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8829696/

相关文章:

regex - awk 和等价类

xml - Grep 仅一行,然后删除

python - 仅模板变量替换。文本/模板合适吗?

awk - 在 awk 中重置 NR

linux - 如何删除文件中不需要的字符(使用 shell 脚本)

linux - 如何用 awk 和 gsub 替换文件中的数字(分别用 NA、0101、0102 和 0202 替换 -1、0、1 和 2)?

linux - Grepping 和分组日志文件中的错误

c - 如何搜索一个词并为该词的下一个出现添加后缀?

regex - 使用 awk 匹配一个单词,然后找到另一个单词第一次出现的位置

bash - 向列添加值并在输出中保持相同的文件格式