gpt4 book ai didi

regex - 为什么这个 sed 正则表达式替换不起作用?

转载 作者:太空宇宙 更新时间:2023-11-04 09:59:14 24 4
gpt4 key购买 nike

我有一个带有 id 的文件,我想为其创建 db INSERT。
我要使用的 SQL:INSERT INTO docstore.migratie_dms (id, document_id, creatiedatum, gebruiker) VALUES (uuid_generate_v4(), 'id_from_file', now(), 'HERC-742');

我将 sed 与正则表达式一起使用,但替换似乎弄乱了结果。

带有 id 的文件:

$ cat object_ids_01.sql 
09ab41308002760e
09ab41308002760f
09ab413080027610
09ab413080027611
...

当我运行这个命令时:
$ sed -E "s/(.*)/INSERT INTO docstore.migratie_dms\(id, document_id, creatiedatum, gebruiker\) VALUES\(uuid_generate_v4\(\),\'\1\', now\(\),\'HERC-742\'\);/"object_ids_01.sql > output.sql

我得到这些结果:

$ cat output.sql 
', now(), 'HERC-742');igratie_dms (id, document_id, creatiedatum, gebruiker) VALUES (uuid_generate_v4(), '09ab41308002760e
', now(), 'HERC-742');igratie_dms (id, document_id, creatiedatum, gebruiker) VALUES (uuid_generate_v4(), '09ab41308002760f
', now(), 'HERC-742');igratie_dms (id, document_id, creatiedatum, gebruiker) VALUES (uuid_generate_v4(), '09ab413080027610
', now(), 'HERC-742');igratie_dms (id, document_id, creatiedatum, gebruiker) VALUES (uuid_generate_v4(), '09ab413080027611
...

似乎 \1 有问题,因为当我用常量字符串替换它时,我得到了不错的插入:

$ sed -E "s/(.*)/INSERT INTO docstore.migratie_dms \(id, document_id, creatiedatum, gebruiker\) VALUES \(uuid_generate_v4\(\), \'xxxxxx\', now\(\), \'HERC-742\'\);/" object_ids_01.sql > output.sql
$ cat output.sql
INSERT INTO docstore.migratie_dms (id, document_id, creatiedatum, gebruiker) VALUES (uuid_generate_v4(), 'xxxxxx', now(), 'HERC-742');
INSERT INTO docstore.migratie_dms (id, document_id, creatiedatum, gebruiker) VALUES (uuid_generate_v4(), 'xxxxxx', now(), 'HERC-742');
INSERT INTO docstore.migratie_dms (id, document_id, creatiedatum, gebruiker) VALUES (uuid_generate_v4(), 'xxxxxx', now(), 'HERC-742');
INSERT INTO docstore.migratie_dms (id, document_id, creatiedatum, gebruiker) VALUES (uuid_generate_v4(), 'xxxxxx', now(), 'HERC-742');
...

我做错了什么?

最佳答案

您的输入可能有 (.*) 正在挑选的尾随空格。 ([^[:space:]]*) 似乎有效。

关于regex - 为什么这个 sed 正则表达式替换不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57653951/

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