gpt4 book ai didi

bash - 为什么一定要逃走 |和 + 在撇号之间的 grep?

转载 作者:行者123 更新时间:2023-11-29 09:36:25 25 4
gpt4 key购买 nike

我是 under the impression在单引号内,例如'pattern',不插入 bash 特殊字符,因此只需要转义单引号本身。

为什么回显“123” | grep '[0-9]+' 什么都不输出,而 echo "123"| grep '[0-9]\+'(加号转义)输出 123? (同样,echo "123"| grep '3|4' 不输出任何内容,除非您对 | 进行转义。)

这是在 CentOS 6.5 上的 bash 4.1.2 和 grep 2.6.3 下。

最佳答案

grep 使用基本 正则表达式,如 sed 和 vi。因为你必须转义元字符,这很乏味。

您可能需要扩展 正则表达式,因此请使用egrepgrep -E(取决于使用的版本)。检查你的 man grep

另见 GNU documentation有关所涉及字符的完整列表。

现在大多数语言都使用扩展正则表达式 (ERE),而且它们更易于使用。基本正则表达式 (BRE) 确实是一种回归。

关于bash - 为什么一定要逃走 |和 + 在撇号之间的 grep?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31853653/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com