sed 命令似乎未完成

sed command seems unfinished

我正在尝试替换一个确切的字符串,但我的 sed 命令返回错误。看来我的命令没有关闭 属性

sed -i s/\<"rpc-whitelist-enabled">/\<"rpc-whitelist-enabled" : false,\>/g somefile

一些文件

"rpc-whitelist": "127.0.0.1",
"rpc-whitelist-enabled": true,

错误

编辑:

此命令不会将值 true 更改为 false

cat file-name | sed  s/"rpc-whitelist-enabled: true"/"rpc-whitelist-enabled : false"/g

某个文件的内容:

{
    "alt-speed-down": 50,
    "alt-speed-enabled": false,
    "cache-size-mb": 4,
    "rpc-authentication-required": false,
    "rpc-bind-address": "0.0.0.0",
    "rpc-enabled": true,
    "rpc-host-whitelist": "",
    "rpc-host-whitelist-enabled": true,
    "rpc-username": "",
    "rpc-whitelist": "127.0.0.1",
    "rpc-whitelist-enabled": true,
    "scrape-paused-torrents-enabled": true,
    "script-torrent-done-enabled": false,
    "script-torrent-done-filename": "",
    "seed-queue-enabled": false,
    "start-added-torrents": true,
}

我不确定我是否完全理解,但尝试对您的数据进行一些更改并且它似乎有效。如果您知道除此之外的任何问题,我们会尝试解决它

使用以下命令使用您的文件名

cat file-name | sed s/"rpc-whitelist-enabled: true"/"rpc-whitelist-enabled : false"/g

如果上述方法有效,请使用以下命令更新您的输入文件。用你的文件名更改文件名

sed -i s/"rpc-whitelist-enabled: true"/"rpc-whitelist-enabled : false"/g file-name

您的 sed 有更多问题,最好使用这个:

sed -i '/"rpc-whitelist-enabled": true,/s/true/false/' somefile

测试:

$ cat somefile | sed '/"rpc-whitelist-enabled": true,/s/true/false/'
{
    "alt-speed-down": 50,
    "alt-speed-enabled": false,
    "cache-size-mb": 4,
    "rpc-authentication-required": false,
    "rpc-bind-address": "0.0.0.0",
    "rpc-enabled": true,
    "rpc-host-whitelist": "",
    "rpc-host-whitelist-enabled": true,
    "rpc-username": "",
    "rpc-whitelist": "127.0.0.1",
    "rpc-whitelist-enabled": false,
    "scrape-paused-torrents-enabled": true,
    "script-torrent-done-enabled": false,
    "script-torrent-done-filename": "",
    "seed-queue-enabled": false,
    "start-added-torrents": true,
}