gpt4 book ai didi

bash - 在 bash 中转换字符串 - 在参数周围添加括号

转载 作者:行者123 更新时间:2023-11-29 09:25:04 24 4
gpt4 key购买 nike

我尝试了以下 sed 但无法完全破解如何在正斜杠上停止并多次应用它

sed 's/(.*):([^:]*)/\1{\2}/g' 

我的输入看起来像

/resource/:paramName
/resource/:paramName/another-resource
/resource/:paramName/another-resource/:anotherParam/final-resource
/resource/:aParam/another-resource/:differentParam/final-resource

进入:

/resource/{paramName}
/resource/{paramName}/another-resource
/resource/{paramName}/another-resource/{anotherParam}/final-resource
/resource/{aParam}/another-resource/{differentParam}/final-resource

最佳答案

使用 GNU awk

awk '{print gensub(/:([^/]*)/,"{\\1}","g")}' file

其他 awk

awk '{gsub(/:[^/]*/,"{&}"); gsub(/{:/,"{")}1' file

Sed

sed  -r 's/:([^/]*)/{\1}/g' file

测试结果:

$ cat file
/resource/:paramName
/resource/:paramName/another-resource
/resource/:paramName/another-resource/:anotherParam/final-resource
/resource/:aParam/another-resource/:differentParam/final-resource

GNU awk

$ awk '{print gensub(/:([^/]*)/,"{\\1}","g")}' file
/resource/{paramName}
/resource/{paramName}/another-resource
/resource/{paramName}/another-resource/{anotherParam}/final-resource
/resource/{aParam}/another-resource/{differentParam}/final-resource

其他 awk:

$ awk '{gsub(/:[^/]*/,"{&}"); gsub(/{:/,"{")}1' file
/resource/{paramName}
/resource/{paramName}/another-resource
/resource/{paramName}/another-resource/{anotherParam}/final-resource
/resource/{aParam}/another-resource/{differentParam}/final-resource

种子:

$ sed  -r 's/:([^/]*)/{\1}/g' file 
/resource/{paramName}
/resource/{paramName}/another-resource
/resource/{paramName}/another-resource/{anotherParam}/final-resource
/resource/{aParam}/another-resource/{differentParam}/final-resource

关于bash - 在 bash 中转换字符串 - 在参数周围添加括号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48520873/

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