gpt4 book ai didi

json - 如何在 bash 中用\"替换 JSON 文件中的引号?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:47:02 26 4
gpt4 key购买 nike

比如从一行文件中读取了一个字符串值。

{"ip":"91.239.165.20","timestamp":"2015-10-16T14:14:31-04:00","data":{"banner":"220 ********.****rn","ehlo":"502 Error: command "EHLO" not implementedrn","starttls":"502 Error: command "STARTTLS" not implementedrn"},"error":"Bad return code for STARTTLS","error_component":"starttls"}

如你所见,字符串中包含了一个短语“EHLO”,就像

“某事“EHLO”结束”

但是现在我想让这条线看起来像这样,

"something \\"EHLO\\"   the end"

如何转换替换这行JSON数据中的引号?

在 bash、正则表达式或其他...

它应该在命令行中运行。

非常感谢!

最佳答案

将 GNU awk 用于 split() 的第 4 个参数,这将适用于如您所示格式化的行:

$ cat tst.awk
{
n = split($0,f,/{"|"}|":{?"|"}?,"/,s)
for (i=1; i<=n; i++) {
gsub(/"/,"\\\"",f[i])
printf "%s%s", f[i], (i<n ? s[i] : ORS)
}
}

$ awk -f tst.awk file
{"ip":"91.239.165.20","timestamp":"2015-10-16T14:14:31-04:00","data":{"banner":"220 ********.****rn","ehlo":"502 Error: command \"EHLO\" not implementedrn","starttls":"502 Error: command \"STARTTLS\" not implementedrn"},"error":"Bad return code for STARTTLS","error_component":"starttls"}

如果您有其他格式不适用,那么您应该编辑您的问题以确保您提供的示例输入/输出更真实地代表您的真实数据。

关于json - 如何在 bash 中用\"替换 JSON 文件中的引号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35947271/

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