0

使用 docker 并希望使用 sed 更新 JSON。

这是 JSON:

var configLocalnet = {
  version: '20180720',
  websocket: {
    protocol: 'http',
    host: 'localhost',
    port: '8082',
  },
  publicapi: {
    protocol: 'http',
    host: 'localhost',
    port: '8082',
  },
}

var configMainnet = {
  version: '20180720',
  websocket: {
    protocol: 'https',
    host: 'to_update',
    port: '443',
  },
  publicapi: {
    protocol: 'https',
    host: 'to_update',
    port: '443',
  },
}
module.exports = process.env.REACT_APP_ENVIRONMENT === "mainnet" ? configMainnet : configLocalnet;

需要将 config var configMainnet中的值更改为:

configMainnet 中的两个主机详细信息都应更改为 test.test.io

var configMainnet = {
  version: '20180720',
  websocket: {
    protocol: 'https',
    host: 'test.test.io',
    port: '443',
  },
  publicapi: {
    protocol: 'https',
    host: 'test.test.io',
    port: '443',
  },
}
4

1 回答 1

1

您可以使用:

sed -E "s/(host:.).+$/\1'test.test.io',/g"

例子:

echo "var configMainnet = {
  version: '20180720',
  websocket: {
    protocol: 'https',
    host: 'to_update',
    port: '443',
  },
  publicapi: {
    protocol: 'https',
    host: 'to_update',
    port: '443',
  },
}" | sed -E "s/(host:.).+$/\1'test.test.io',/g"
var configMainnet = {
  version: '20180720',
  websocket: {
    protocol: 'https',
    host: 'test.test.io',
    port: '443',
  },
  publicapi: {
    protocol: 'https',
    host: 'test.test.io',
    port: '443',
  },
}
于 2020-07-10T09:59:59.980 回答