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

Unix下使用grep提取特定字符串遇异常问题排查

解决grep匹配default:group条目时的贪婪匹配问题

我来帮你搞定这个grep匹配的问题——你遇到的核心问题是正则表达式的贪婪匹配特性在搞鬼,咱们一步步拆解清楚:

问题根源

你最初用的正则default:group:.*里,.*会匹配任意字符(包括空格),而且是贪婪模式:它会从第一个default:group:开始,一直匹配到整个字符串的末尾,这就导致你拿到的结果包含了后面的default:mask、default:other等无关内容,自然不符合预期。

解决方案

我们需要精准匹配每个独立的default:group:开头的权限条目(因为所有权限条目都是用空格分隔的),可以用以下两种方式实现:

方式1:分步筛选

先提取所有default:group:开头的完整条目,再筛选出带rwx的:

echo "# file: /test/test1 # owner: own # group: grp user::rwx user:nr:rwx user:ac:rwx user:ao:rwx group::r-x group:accounts:--x group:fin:r-x mask::rwx other::--- default:user::rwx default:group::r-x default:group:accounts:--x default:group:fin:rwx default:mask::rwx default:other::---" | grep -o "default:group:[^ ]*" | grep "rwx"
  • default:group:[^ ]*:[^ ]表示匹配非空格字符,*表示匹配0个或多个,这样就能精准捕获每个以default:group:开头的独立条目(到下一个空格为止)。
  • 再用grep "rwx"筛选出权限为rwx的条目。

方式2:一步到位匹配

直接用正则精准匹配带rwx的default:group条目:

echo "# file: /test/test1 # owner: own # group: grp user::rwx user:nr:rwx user:ac:rwx user:ao:rwx group::r-x group:accounts:--x group:fin:r-x mask::rwx other::--- default:user::rwx default:group::r-x default:group:accounts:--x default:group:fin:rwx default:mask::rwx default:other::---" | grep -o "default:group:[^ ]*rwx"

预期输出

两种方式都会得到你想要的结果:

default:group:fin:rwx

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 09:12:57