[英]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.