【问题标题】:grep help - search for this string: '$i['grep help - 搜索这个字符串:'$i['
【发布时间】:2021-10-05 20:01:04
【问题描述】:

我在使用 grep 搜索以下字符串时遇到问题:$i[

我尝试使用此命令:

grep -ir "$i\[" * > search.txt

我添加了 \ 来转义方括号。我还需要转义美元符号吗?

我正在使用 macOS 终端 - 我相信这是一个 Unix 环境。

无论如何,我想要的是与上面的字符序列完全匹配——如果这个字符串包含在其他字符串中也没关系。

为了明确我想要描述的内容,我想要这样:*$i[*(其中 * 表示通配符或 $i[

但是,无论出于何种原因,我都没有得到包含 $i[

的完全匹配

返回的搜索结果似乎只包含美元符号而不是方括号旁边的字母 i。

【问题讨论】:

    标签: regex grep


    【解决方案1】:

    由于您搜索的是固定字符串,而不是正则表达式,因此您可以将-F 选项与grep 一起使用,并确保使用单引号来避免任何变量扩展:

    grep -iFr '$i[' * > search.txt
    

    如果您仍想使用正则表达式模式,您需要同时转义[(因为它在正则表达式中用于定义括号表达式的开头)和$(它用于定义结尾字符串位置):

    grep -ir '\$i\[' * > search.txt
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-11-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多