我正在尋找更改 json 檔案中鍵的值
例子:
"House":"sample.house.city"
需要將“樣本”一詞更改為其他內容。
我可以這樣做:
sed -i 's|sample.house.city|town-home.house.city|g' file.json
但不能保證“樣本”每次都相同。
我試過了:
sed -i 's|*.house.city|town-home.house.city|g' file.json
但它沒有改變。
也試過:
sed -i 's|"*.house.city"|"town-home.house.city"|g' file.json
但這最終像:
"sample"town-home.house.city"
關于如何正確執行此操作的任何建議?
uj5u.com熱心網友回復:
要匹配任何單詞,您可以使用[[:alnum:]_]*(POSIX BRE) / [[:alnum:]_] (POSIX ERE):
sed -i 's|[[:alnum:]_]*\.house\.city|townhome.house.city|g' file.json
查看在線演示:
#!/bin/bash
s='"House":"sample.house.city"'
sed 's|[[:alnum:]_]*\.house\.city|townhome.house.city|g' <<< "$s"
輸出:
"House":"townhome.house.city"
請注意,您還需要轉義用于匹配文字點的點。
uj5u.com熱心網友回復:
$ sed -E 's/(\w )(\.house\.city)/town-home\2/g' <<< '"House":"sample.house.city"'
"House":"town-home.house.city"
$ sed -iE 's/(\w )(\.house\.city)/town-home\2/g' file.json
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/478754.html
