gpt4 book ai didi

linux - 在字符串中使用文件中的匹配

转载 作者:太空宇宙 更新时间:2023-11-04 04:38:37 25 4
gpt4 key购买 nike

我的文件中有一个用户 ID 列表,我正在尝试从该文件生成一些 sql。

cat users.json | awk '/UID/{print "INSERT IGNORE INTO potential_problem_users VALUES ("$2");" }'

但它没有按照我的预期进行:

);SERT IGNORE INTO potential_problem_users VALUES ("1"
);SERT IGNORE INTO potential_problem_users VALUES ("2"

我正在尝试的查询是:

INSERT IGNORE INTO potential_problem_users VALUES ([userID]);

示例 json 如果有帮助:

{
"results": [
{
"UID": "abc"
},
{
"UID": "124"
}
],
"objectsCount": 5,
"totalCount": 10966,
"statusCode": 200,
"errorCode": 0,
"statusReason": "OK"
}

我使用的工具正确吗?如果是的话,我做错了什么?

最佳答案

您的 JSON 输入有几个问题,导致无法使用像 jq 这样的解析器来解析它们。在 OS X 上,您可以通过 brew install jq

安装

您的问题中的无错误JSON将是

{
"results": [
{
"UID": "abc"
},
{
"UID": "124"
}
],
"objectsCount": 5,
"totalCount": 10966,
"statusCode": 200,
"errorCode": 0,
"statusReason": "OK"
}

要解析此 JSON 并生成两个语句作为包含 UID 值的查询,只需执行

jq --raw-output '"INSERT IGNORE INTO potential_problem_users VALUES (" + (.results[] | .UID) + ")"' users.json

将产生如下输出

INSERT IGNORE INTO potential_problem_users VALUES (abc)
INSERT IGNORE INTO potential_problem_users VALUES (124)

jq 中的加法运算符 + 允许您连接字符串以形成最终字符串。

jq snippet from jqplay .

关于linux - 在字符串中使用文件中的匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44910625/

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