You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在同一grep命令中同时匹配单引号和美元符号?

在grep中匹配单引号、美元符号,以及同时搞定两者的方法

刚巧踩过这个坑,给你梳理下grep里处理这两个特殊字符的技巧,包括同时匹配的方案:

先搞定单个符号的匹配

  • 匹配单引号:最简单的方式就是把单引号放进双引号里,这样shell不会把它当成引号边界,grep就能直接识别成目标字符。命令长这样:

    grep "'" file.txt
    

    当然也有其他写法,但双引号包裹的方式最直观好记。

  • 匹配美元符号:$在shell里是变量前缀,在grep正则里又是行尾锚点,所以得让它“回归”成普通字符。这里要注意:用双引号写"\$"是没用的——因为shell会先把\$解析成$传给grep,此时grep会把它当成行尾标记,而不是美元符号本身。正确的做法是用单引号包裹:

    grep '\$' file.txt
    

重点:同时匹配单引号和美元符号

这里有几个实用的方法,选你顺手的来:

方法1:混合拼接单双引号

利用shell允许不同引号直接拼接的特性,把单引号放在双引号里,美元符号放在单引号里,shell会自动把它们拼成完整的匹配模式:

grep "'\$" file.txt

解释一下:"'是双引号包裹的单引号,'\$'是单引号包裹的转义美元符号,拼在一起就是'$,刚好是我们要匹配的两个字符。

方法2:双引号里双重转义美元符号

如果习惯全程用双引号,那得对美元符号做两次转义——第一次转义让shell把\\$变成\$,传给grep后,\$就会被识别成普通的美元符号:

grep "'\\$" file.txt

方法3:用ANSI-C引用(bash/zsh适用)

如果你的shell是bash或者zsh,可以用$'...'这种ANSI-C引用格式,里面可以直接用转义表示单引号,美元符号直接写就行:

grep $'\''$' file.txt

这里$'\''是表示单引号的写法,后面直接跟$,组合起来就是我们要匹配的'$,非常直观。

小技巧:先验证模式再用

不确定模式对不对的话,可以先用echo测试,比如:

echo $'\''$'  # 输出就是 '$',说明模式没问题

确认后再传给grep就稳了。

内容的提问来源于stack exchange,提问作者Heitor

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 06:44:19