Text-Processing
傑森。後面怎麼加句:
以下是我擁有的 json 文件的摘錄:
}, { "name": "asdasd", "script": "dsad.js", "merge_logs": ture, "error_file": "/ofghfghgfh.log", "out_file": "/fghgfhfgg", "cwd": "", "autorestart": true, "log_date_format" : "YYYY-MM-DD HH:mm Z", "env": { "NODE_ENV": "desa", "KEY": "VtZOiz0Qc4afFs6j+h2r" } }]
我想在“KEY”之後添加一個片語:替換它現在擁有的值。
我嘗試了“sed”,但我將它添加到了行尾
sed '/KEY/s/$/1234/g' .json
我需要使用“-i”選項直接更改文件。
您可以使用它(使用
i
選項來修改文件,但首先檢查它是否正常工作):sed -E 's/("KEY":) (".*")/\1 anything/g' .json
它會在兩部分中斷線,首先匹配
"KEY":
,然後是空格,它將用任何東西替換第二部分。讓我們說
KEY='"1234"'
(通過使用單引號 KEY 的值將是"1234"
)。然後就可以使用了。sed -E "s/(\"KEY\":) (\".*\")/\1 $KEY/g" .json
sed
是這項工作的錯誤工具。正確的工具之一是jq
.%貓wibble.json [ { “名稱”:“asdasd”, “腳本”:“dsad.js” }, { "log_date_format" : "YYYY-MM-DD HH:mm Z", “環境”:{ "NODE_ENV": "德薩", “KEY”:“VtZOiz0Qc4afFs6j+h2r” } } ] % jq '.[1]."env"."KEY" = "1234"' wibble.json [ { “名稱”:“asdasd”, “腳本”:“dsad.js” }, { "log_date_format": "YYYY-MM-DD HH:mm Z", “環境”:{ "NODE_ENV": "德薩", “鑰匙”:“1234” } } ] %
它甚至發現您的 JSON 實際上是無效的。
%jq。ortiga.json 解析錯誤:第 4 行第 23 列的文字無效 %