我目前有一个 SQL 文件,其中填充了以下形式的插入语句:
INSERT INTO
database.table(primary_key,
foreign_key, url_one,
url_two, int_one,
int_two, int_three) VALUES
(266,7,https://some.url.com/image_one.png,https://some.url.com/image_two.png,266,1440,900);
我现在意识到 URL 字符串需要用引号括起来才能在 MySQL 中执行它们。我可以使用什么命令将 URL 字符串括起来?
我尝试使用“sed”来执行此操作,但是由于我不完全了解我想要实现的语法,因此我无法正确执行命令:
sed -e "s/(https://).*(\.png)/\"(https://)$1(.png)\"/g" some_sql_file.sql
运行结果如下:
sed: -e expression #1, char 12:
's' 的未知选项
任何帮助都将不胜感激,因为我想尽可能避免重新生成 SQL 文件只是为了放入引号。
答案1
我会用:
sed -e 's@\(https\?://[^,]*\),@"\1",@g' FILE
这将查找以 开头且后跟http
可选的 的表达式。然后它将取到第一个之前的所有内容。此表达式将被 括起来。s
://
,
"