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

如何匹配带有可选前置斜杠的两个字符?(ADB Shell grep场景)

问题解答

首先明确:没法用方括号语法实现你的需求。原因很简单:方括号[]的作用是定义「单个字符的集合」,里面的^会被当成普通字符(只有放在方括号开头时才是取反,但这里你是和/放一起,所以就是匹配^这个字符本身),根本起不到「行首锚点」的作用——这就是你之前匹配到^sh的原因。

要匹配「行首的sh(即整行就是sh)」或者「/sh(整行就是/sh)」,得用分支匹配,结合ADB Shell里grep的特性(大概率是BusyBox版grep,默认用基本正则BRE),写法分两种:

  1. 用基本正则(无需额外选项):
grep '^sh$\|/sh$' 你的目标文件

这里的\|是BRE里的分支分隔符,必须转义;^sh$匹配整行是sh的内容,/sh$匹配整行是/sh的内容。

  1. 如果你的grep支持扩展正则(加-E选项),写法更简洁:
grep -E '^sh$|/sh$' 你的目标文件

扩展正则里|不需要转义,直接用来分隔两个匹配模式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 00:14:52