gpt4 book ai didi

regex - 如何使用 sed 在文件中创建此模式

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

我有这个文件

Array ( [0] => ROLE_ADMIN@READ@User [1] => ROLE_ADMIN_DD_USER@READ@User [2] => ROLE_DD_USER@READ@* [3] => ROLE_USER@READ@User [4] => IS_AUTHENTICATED_ANONYMOUSLY@*@User [5] => *@READ@User [6] => ROLE_ADMIN@form@User [7] => *@form@User [8] => 

我想提取 ROLE_ADMIN@READ@User 部分,然后将它们以逗号分隔。

[ ROLE_ADMIN@READ@User , ROLE_ADMIN@READ@User ]

我已经在 sed 中试过了

sed -re 's/ ([A-Z_\*]*)@([A-Za-z\*]*)@[a-z\*]*/#/g' role.txt

这已经完成了一半;我不确定下一步该怎么做。你能帮忙吗?

最佳答案

与其 try catch => 之后的值,替换其他所有内容会更容易:

sed -e 's/.* \[0] => /[ /' -e 's/\[[0-9]*] =>/,/g' -e 's/[, ]*$/]/' role.txt

解释:

  • 第一个表达式将开始部分替换为 [
  • 第二个表达式将所有中间部分替换为,
  • 第三个表达式用 ] 替换尾随逗号和空格

所以你最终得到:

[ ROLE_ADMIN@READ@User , ROLE_ADMIN_DD_USER@READ@User , ROLE_DD_USER@READ@* , ROLE_USER@READ@User , IS_AUTHENTICATED_ANONYMOUSLY@*@User , *@READ@User , ROLE_ADMIN@form@User , *@form@User ]

如果你想对条目进行排序,那么我推荐使用 perl:

perl -ne '@u = m/=> *(\S+)/g; print "[ ", join(" , ", sort(@u)), " ]\n"' < role.txt

这会给你:

[ *@READ@User , *@form@User , IS_AUTHENTICATED_ANONYMOUSLY@*@User , ROLE_ADMIN@READ@User , ROLE_ADMIN@form@User , ROLE_ADMIN_DD_USER@READ@User , ROLE_DD_USER@READ@* , ROLE_USER@READ@User ]

关于regex - 如何使用 sed 在文件中创建此模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20806677/

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