Sed 偶尔会丢失捕获组

问题描述 投票:0回答:1

我正在编写一个脚本,该脚本将允许用户更简单地应用自己的逗号分隔 ACL,作为更广泛的目录创建脚本的一部分。用户将输入

u
/
user
g
/
group
、他们的名字以及他们想要从
RWX
获得的基本选项。我正在使用 sed 将输入转换为正确的 NFSv4 ACL:


sed -E 's/^/A:/;s/(u|user|roup):([A-Za-z0-9]*):(.*)/:\[email protected]:\3/'

当我输入如下列表进行测试时:

u:user1:RWX,g:group1:RX
,我确实看到了用户的正确输出:
A::[email protected]:RWX
,但该组未正确应用:
A:g:group1:RX
而不是
A:g:[email protected]:RX
。当我使用
group:group1::RX
时,它会正确返回
A:g:[email protected]:RX
。我猜这是因为
g
未被识别为第一个捕获组,但我不知道如何纠正它。有什么建议吗?

sed capture-group
1个回答
0
投票

g:
如何匹配
(u|user|roup):
?您可能想将
u
替换为
[gu]

© www.soinside.com 2019 - 2024. All rights reserved.