首页 > 解决方案 > grep 命令中的点用作正则表达式

问题描述

我试图了解 bash 在将字符串传递给 grep 之前是否对字符串进行了某些操作,或者 grep 默认情况下是否使用基本的正则表达式搜索。手册页和其他答案并没有真正澄清

ss -an | grep "8.02"

u_dgr            UNCONN                 0                   0                                                                                                 * 820284002                                            * 820284001                
u_str            ESTAB                  0                   0                                                                                                 * 820283949                                            * 820287456                

看起来.正在以正则表达式的方式使用来匹配单个字符。但是,我只希望在使用grep -eor时会发生这种情况grep -E。如果 bash 正在拦截字符串,我希望首先拦截特殊的 shell 字符,例如*or ?

man 条目指出我正在使用 GNU grep 3.1

标签: grep

解决方案


看起来我在 RTFMing 更近一点后立即找到了答案

-G, --basic-regexp 将 PATTERN 解释为基本正则表达式(BRE,见下文)。这是默认设置。

“这是默认值” - 我假设这意味着如果没有传递标志,这是默认行为?


推荐阅读