gpt4 book ai didi

sed 中的正则表达式替换给定特定格式的 url 的一部分

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:30:52 25 4
gpt4 key购买 nike

我在使用 sed 做一个简单的正则表达式时遇到了一些问题。

我必须在一个 sql 文件中做一些替换,我正在尝试使用 sed。

我应该替换一些链接的 url。链接格式如下:

www.site1.com/blog/2012/12/12

我想将所有链接中的 site1 替换为 site2

为了找到这些链接,我编写了以下正则表达式:

(site1.com)\/blog\/\d{4}\/\d{2}\/\d{2}

而且似乎工作正常。

使用 sed 做替换的事情我写了下面的代码

cat back.sql | sed 's:(site1.com)\/blog\/\d{4}\/\d{2}\/\d{2}:site2.com:' > fixed.sql

但是好像不行..

最佳答案

sed 不支持 \d(至少我不知道),并且仅支持带有扩展正则表达式的 {4}

sed -r 's:site1.com(/blog/[0-9]{4}/[0-9]{2}/[0-9]{2}):site2.com/\1:'

作为基本的正则表达式(需要大量转义):

sed 's:site1.com\(/blog/[0-9]\{4\}/[0-9]\{2\}/[0-9]\{2\}\):site2.com/\1:'

附言。如果您使用不同的分隔符 (:)

,则无需转义斜杠

关于sed 中的正则表达式替换给定特定格式的 url 的一部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10027381/

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