1

我将如何使用 sed 在标准输入中搜索正则表达式"pk": [0-9]+并将其替换为"pk": null

例如转换"pk": 123"pk": null

我试过类似的东西:

cat mydata.json | sed -e s/\"pk\"\:\s[0-9]+/\"pk\"\:\snull/g

但这没有效果。削减正则表达式,它似乎中断了,[0-9]+但我不知道为什么,因为这既是一个简单而有效的正则表达式。我究竟做错了什么?

4

2 回答 2

0

猫是没有必要的。

sed 's/\(.*:\s*\)[0-9]\+/\1null/' file

如果您确切需要pk

sed 's/\("pk":\s*\)[0-9]\+/\1null/' file

例如

kent$  echo '"pk": 123'|sed 's/\(.*:\s*\)[0-9]\+/\1null/'
"pk": null
于 2013-05-29T20:22:50.043 回答
-1

这应该有效:

sed -e 's/"pk": [0-9]\+/"pk": null/g' mydata.json
于 2013-05-29T20:21:36.610 回答