簡體   English   中英

使用Sed使用來自stdin的正則表達式搜索和替換JSON

[英]Using Sed to search and replace JSON using regex from stdin

我將如何使用sed在stdin中搜索正則表達式"pk": [0-9]+ ,並將其替換為"pk": null

例如,將"pk": 123轉換為"pk": null

我已經嘗試過類似的東西:

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

但這沒有效果。 減少正則表達式,它似乎在[0-9]+處中斷,但是我不確定為什么,因為這既是一個簡單又有效的正則表達式。 我究竟做錯了什么?

這應該工作:

sed -e 's/"pk": [0-9]\+/"pk": null/g' mydata.json

貓不是必需的。

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

如果您pk需要pk

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

例如

kent$  echo '"pk": 123'|sed 's/\(.*:\s*\)[0-9]\+/\1null/'
"pk": null

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM