shell 之 grep 持续更新

本文详细介绍了grep命令的各种高级用法,包括精确查找特定字符串、忽略大小写、递归搜索目录、显示指定行数等。同时提供了正则表达式的解释及在线测试资源。
grep -E 'stra|strb'	// 查找包含stra或strb的行
grep ^str		// 查找以str开头的行
grep -i str		// 忽略大小写
grep -rl str /root	// 在/root下查找包含str的文件,并只列出文件名 -r表示递归目录匹配
grep -n str		// 显示行号
grep --color str	// 染成红色或加重
grep -e			// 将两个表达式连在一起,比如:grep -e ^str1 -e str2$ ????
grep -B12 str        // 显示str所在行及其前12行
grep -A23 str        // 显示str所在行及其后23行
grep -C34 str        // 显示str所在行及其前后34行


附:

[abc]	A single character: a, b or c
[^abc]	Any single character but a, b, or c
[a-z]	Any single character in the range a-z
[a-zA-Z]	Any single character in the range a-z or A-Z
^	Start of line
$	End of line
\A	Start of string
\z	End of string
.	Any single character
\s	Any whitespace character
\S	Any non-whitespace character
\d	Any digit
\D	Any non-digit
\w	Any word character (letter, number, underscore)
\W	Any non-word character
\b	Any word boundary character
(...)	Capture everything enclosed
(a|b)	a or b
a?	Zero or one of a
a*	Zero or more of a
a+	One or more of a
a{3}	Exactly 3 of a
a{3,}	3 or more of a
a{3,6}	Between 3 and 6 of a
options: i case insensitive m make dot match newlines x ignore whitespace in regex o perform #{...} substitutions only once



在线测试:http://www.rubular.com/

 

 

刚才从同事那里得到了一张神图,是vi的,顺便贴在这吧

 

 

<think>好的,我现在需要解决用户的问题:如何通过adb shell getprop命令结合grep查找base_os属性值,以及Tacoo V配置中base_os使用上一个MR版本的具体含义。首先,我得先理清楚用户的需求。 用户之前的问题是关于配置Tacoo V的base_os为上一个MR版本的值,现在他们想通过adb shell来查找base_os的属性值,并且理解这个属性与Tacoo V配置中的关系。需要结合之前的回答和引用内容来处理。 首先,用户提到使用adb shell getprop和grep来查找base_os。根据引用[2],adb shell命令调用的是Android系统中的命令,而getprop是用于获取系统属性的。所以,正确的命令应该是`adb shell getprop | grep base_os`。不过,可能需要处理大小写问题,或者使用正则表达式来确保找到正确的属性。另外,如果属性不存在,可能需要检查是否有拼写错误或者是否需要root权限。 接下来,用户想了解base_os属性与Tacoo V配置中上一个MR版本的关系。根据之前的回答,Tacoo V的base_os配置是通过环境变量或配置文件设置的,可能与版本控制系统中的MR版本相关联。需要解释为什么在Tacoo V中要使用上一个MR版本的base_os,可能是为了回滚、环境一致性或者测试目的。 在用户提供的引用中,引用[1]提到了一些adb命令用于检查FOTA应用的版本信息,这可能与系统属性相关,但用户现在的问题是关于base_os的。需要确保回答中正确区分这些命令的使用场景,避免混淆。 可能需要注意用户是否有权限访问这些属性,某些系统属性可能需要root权限才能查看。此外,Tacoo V的配置如何动态注入base_os的值,是否需要构建脚本或持续集成流程来自动化这个过程,这也是需要考虑的点。 另外,用户之前的回答中提到了通过git获取MR版本号,并将其注入到配置中。现在用户的问题是将adb获取的base_os属性与Tacoo的配置联系起来,可能需要说明这两者之间的关系,比如base_os属性是否在构建时由MR版本号设置,或者Tacoo V在运行时读取该属性作为配置的一部分。 需要确保回答结构清晰,分步骤说明如何查找属性值,然后解释其与MR版本的关系。同时,引用之前的回答中的方法,比如使用git log获取MR版本,并将其与base_os配置关联起来,可能有助于用户理解整个流程。 最后,用户可能需要验证配置是否生效,所以需要建议检查日志或使用adb命令确认base_os的值是否正确设置,并确保Tacoo V在启动时正确读取了这个值。</think>### 通过 `adb shell` 获取 `base_os` 属性值 #### 1. **使用 `getprop` 命令结合 `grep` 过滤** Android 系统属性(如 `base_os`)可通过 `adb shell getprop` 查询。若属性名称已知,可直接筛选: ```bash adb shell getprop | grep -i 'base_os' ``` - **参数说明**: - `grep -i`:忽略大小写,适配不同系统实现(如 `base_os`/`base.os`/`BASE_OS`)。 - 若未返回结果,可能原因: - 属性未定义(需检查设备是否预置相关属性)[^1]。 - 需要 root 权限(部分属性仅对系统进程可见)。 #### 2. **精确匹配属性名(正则表达式)** 若需精确匹配 `base_os`,可使用正则表达式: ```bash adb shell getprop | grep -E '\[base_os\]' ``` 输出示例: ``` [base_os]: [MR-2.1.3-20231012] ``` --- ### `base_os` 属性与 Tacoo V 配置的关系 #### 1. **`base_os` 属性的作用** - **系统标识**:`base_os` 通常表示设备底层系统版本(如定制 ROM 版本号),用于区分不同固件迭代。 - **与 Tacoo V 的关联**:Tacoo V 可能依赖 `base_os` 值动态加载兼容性配置(如 API 接口版本、功能开关)。 #### 2. **“使用上一个 MR 版本”的具体含义** - **MR(Merge Request)版本**:指代码仓库中通过合并请求生成的版本标识符(如 Git 提交哈希或标签)。 - **配置逻辑**: - Tacoo V 的 `base_os` 配置项可能需指向**上一个稳定 MR 版本**,以确保兼容性(例如回滚到历史版本验证问题)。 - **动态注入**:通过构建脚本将上一个 MR 版本的值注入 `base_os` 属性或 Tacoo V 的配置文件。 ```bash # 示例:Git 获取上一个 MR 提交哈希并注入环境变量 PREV_MR_HASH=$(git log --merges -n 1 --pretty=format:%H) adb shell "setprop base_os $PREV_MR_HASH" ``` - **验证关联性**: ```bash # 检查 Tacoo V 运行时读取的 base_os 值 adb shell "getprop base_os" ``` --- ### 关键差异说明 | 场景 | `adb shell getprop base_os` | Tacoo V 配置的 `base_os` | |---------------------|-------------------------------------------|--------------------------------| | **数据来源** | 设备系统属性 | 构建时注入的版本标识符 | | **更新方式** | 通过 `setprop` 或固件升级 | 版本控制系统或 CI/CD 流程 | | **用途** | 标识当前设备系统版本 | 控制 Tacoo V 兼容性与功能逻辑 | --- ### 关联问题 1. 若 `base_os` 属性为空,如何通过 ADB 手动设置其值? 2. Tacoo V 如何确保 `base_os` 与设备实际系统版本的一致性? 3. 在分布式部署中,如何同步多个设备的 `base_os` 属性(参考 OceanBase 的配置同步机制[^2])? [^1]: 系统属性未定义时需检查设备固件或预置条件。 [^2]: 配置同步需依赖分布式协调服务(如 ZooKeeper)或设备管理平台。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值