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

如何在Bash脚本中用正则提取/proc/cmdline的根文件系统路径?

在Bash中提取根文件系统路径的方法

针对你的需求,这里提供几种可行的实现方式,直接提取/proc/cmdline中root=后的路径:

方法1:使用grep的PCRE正则(推荐)

利用正向零宽断言跳过root=前缀,只匹配后续的路径内容:

grep -oP '(?<=root=)[^ ]+' /proc/cmdline
  • -o:只输出匹配到的部分
  • -P:启用PCRE正则语法
  • (?<=root=):正向预查,确保匹配位置前是root=
  • [^ ]+:匹配所有非空格字符,直到遇到第一个空格为止

方法2:使用sed的分组捕获

通过正则分组提取目标内容,替换整行只保留分组结果:

sed -n 's/.*root=\([^ ]*\).*/\1/p' /proc/cmdline
  • -n:默认不输出行内容
  • \([^ ]*\):将root=后的非空格内容捕获为第1组
  • \1:在替换时引用第1组的内容,p命令打印处理后的行

方法3:Bash内置参数替换(无需外部工具)

直接通过Bash的字符串处理能力提取路径,避免调用外部命令:

cmdline=$(cat /proc/cmdline)
root_path=${cmdline#*root=}  # 移除开头到"root="的所有内容
root_path=${root_path%% *}   # 移除第一个空格到结尾的所有内容
echo "$root_path"

对原有正则的调整说明

你之前的正则\broot=[^ ]+会匹配包含root=的完整串,只需通过分组捕获或正向预查排除root=前缀,就能直接得到目标路径。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 09:31:32