gpt4 book ai didi

regex - 如何用 sed 替换 SQL 文件中的字符串

转载 作者:行者123 更新时间:2023-12-05 03:13:56 24 4
gpt4 key购买 nike

我有一个多站点 WordPress 安装,其中包含我工作的公司的多个站点,并且我生成了一个 bash 脚本,分别为每个站点提取数据库表。

此外,我们根据每个副本的位置为每个站点命名。例如,站点的本地副本被命名为 Site Title - Local,staging 的标题如 Site Title - Staging 和 production 如 Site Title

在我的脚本中,我可以使用以下 sed 命令来查找 - Local 并将其替换为 - Staging

sed -i -e "s/\s\-\sLocal/\ \-\ Staging/g" ${staging_sql_file};

但是下面的语句对于删除字符串 - Local 不起作用:

sed -i -e "s/ - Local//g" ${staging_sql_file};

我也有像下面这样的尝试模式:

"s/\s\-\sLocal//g"
"s/ \- Local//g"
"s/\s\-\sLocal/\s/g"
"s/ \- Local/ /g"

但这些都不起作用。

有人可以帮我解决这个问题吗?

更新 #1

当我尝试上面显示的正则表达式时,sed 出现错误。

更新 #2

我的 SQL 文件如下所示:

LOCK TABLES `wp_16_options` WRITE;
/*!40000 ALTER TABLE `wp_16_options` DISABLE KEYS */;
INSERT INTO `wp_16_options` VALUES (1,'siteurl','https://www.site-url.com','yes'),(2,'home','https://www.site-url.com','yes'),(3,'blogname','Site Title - Local','yes'),(4,'blogdescription','Just another multi site wp site','yes'),(5,'users_can_register','0','yes'),...

最佳答案

试试这个 sed:

sed -i.bak 's/[[:blank:]]*-[[:blank:]]*Local//g' "${staging_sql_file}"

即使用 POSIX 类 [[:blank:]] 代替水平空白。

关于regex - 如何用 sed 替换 SQL 文件中的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28072241/

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