替换URL的部分

时间:2017-04-24 13:53:32

标签: regex sed

我有一行文件:

value = "http://jenkins/my/job/jobname/4564/artifact"

现在我想通过sed用不同的号码替换号码(4564)。

我试过了:

sed 's|http[s]?:\/\/.*\/job\/jobname\/([0-9]+)\/artifact|8945|g'

在所有工具中,我可以很好地匹配组,但我似乎无法弄清楚如何告诉sed替换唯一的组。

1 个答案:

答案 0 :(得分:1)

试试这个:

sed 's@\(/jobname/\)[0-9]\+@\1whatever@'
  • 您已选择|作为sed的s命令的分隔符,然后您无需转义那些/,例如http://
  • 默认sed的正则表达式是BRE,您必须转义+()以赋予它们特殊含义。
  • 在您的代码中,该组没有意义,因为它是您要替换的部分。如果您想保存一些打字,则应将该组放在要保留在最终结果中的部分上。