gpt4 book ai didi

regex - 使用 sed (或任何其他工具)删除 json 文件中的引号

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

我有一个 json 文件

{"doc_type":"user","requestId":"1000778","clientId":"42114"}

我想把它改成

{"doc_type":"user","requestId":1000778,"clientId":"42114"}

即将 requestId 从字符串转换为整数。我尝试了一些方法,但似乎都不起作用:

sed -e 's/"requestId":"[0-9]"/"requestId":$1/g' test.json
sed -e 's/"requestId":"\([0-9]\)"/"requestId":444/g' test.json

有人可以帮我吗?

最佳答案

尝试

sed -e 's/\("requestId":\)"\([0-9]*\)"/\1\2/g' test.json

sed -e 's/"requestId":"\([0-9]*\)"/"requestId":\1/g' test.json

与您的尝试的主要区别是:

  • 您的正则表达式正在寻找双引号之间的 [0-9],并且这是一个数字。通过使用 [0-9]*,您可以查找任意数量的数字(零个或多个数字)。

  • 如果您想将搜索中的字符序列复制到替换字符串中,则需要在正则表达式中定义一个以 \( 开头和结尾 \) 组成的组,然后在替换字符串中使用 \1 来插入该字符串。如果有多个组,则对第一个组使用 \1,对第二组使用 \2,依此类推。

另请注意,最后一个 / 之后的最后一个 g 用于在每个处理的行中的所有匹配中应用此替换。如果没有该 g,替换将仅应用于每个已处理行中的第一个匹配项。因此,如果您只希望每行有一个这样的替换,则可以删除该 g

关于regex - 使用 sed (或任何其他工具)删除 json 文件中的引号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51450154/

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