使用 jq 更改所有键的值

Phi*_*ppe 1 json key-value jq

我有这个 package.json

{
  "dependencies": {
    "body-parser": "^1.19.0",
    "eslint": "^7.15.0",
    "express": "^4.17.1"
  } 
} 
Run Code Online (Sandbox Code Playgroud)

使用此命令:

jq '.dependencies.eslint="latest"|.dependencies.express="latest"' package.json
Run Code Online (Sandbox Code Playgroud)

我得到了这个结果:

{
  "dependencies": {
    "body-parser": "^1.19.0",
    "eslint": "latest",
    "express": "latest"
  }
}
Run Code Online (Sandbox Code Playgroud)

如何在不枚举单个密钥的情况下将所有版本更改为“最新”?

hek*_*mgl 5

像这样:

jq '.dependencies[]="latest"' package.json
Run Code Online (Sandbox Code Playgroud)

输出:

{
  "dependencies": {
    "body-parser": "latest",
    "eslint": "latest",
    "express": "latest"
  }
}
Run Code Online (Sandbox Code Playgroud)