gpt4 book ai didi

regex - 需要正则表达式从 Unix id 命令中提取组

转载 作者:太空宇宙 更新时间:2023-11-04 11:24:55 25 4
gpt4 key购买 nike

我需要从 Unix id 命令输出中提取组名。我试过但无法编写正则表达式。 id 命令的示例输出是:

uid=xxxxxx(amit) gid=xxxxxxx(xxxxxx) groups=xx(xxxx),xxxxxx(xxxxxx),xxxxx(xxxxx)

如何提取 groups= 后方括号中的字符串?

最佳答案

如果您的 id 版本是最简单的事情支持的是:

$ id -nG
group1 group2 group3

参见 man id对于可用选项:

   -G, --groups
print all group IDs
-n, --name
print a name instead of a number

如果您真的想知道如何使用正则表达式进行解析,您可以阅读以下内容。

这个正则表达式 (?<=\()[^)]+(?=\)(,|$))将完成这项工作,它使用 positive-lookahead and look-behind匹配括号内后跟逗号或字符串结尾的字符串。与 GNU grep :

$ id | grep -Po '(?<=\()[^)]+(?=\)(,|$))'
group1
group2
group3

如果你没有 GNU grep哪些支持PCRE然后你可以删除环视并使用 sed 进行过滤:

$ id | grep -Eo '\([^)]+\)(,|$)' | sed 's/[),(]//g'
group1
group2
group3

关于regex - 需要正则表达式从 Unix id 命令中提取组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15332529/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com