【问题标题】:sed command seems unfinishedsed 命令似乎未完成
【发布时间】:2018-11-22 13:29:02
【问题描述】:

我正在尝试替换一个确切的字符串,但我的 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,
}

【问题讨论】:

  • 尝试将s 命令用单引号括起来。 sed -i 's/&lt;"rpc-whitelist-enabled"&gt;/&lt;"rpc-whitelist-enabled" : false,&gt;/g' somefile
  • 我不知道为什么,但它并没有改变价值。
  • 编辑解决方法相同:sed -i 's/"rpc-whitelist-enabled": true/"rpc-whitelist-enabled": false/g' file
  • 不适用于真实内容,抱歉

标签: shell sed centos7


【解决方案1】:

你的 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,
}

【讨论】:

  • 在您提供的某个文件中,它会检查测试,或提供您文件的确切内容
  • 在问题中添加
  • 完美!工作很棒
【解决方案2】:

我不确定我是否完全理解,但尝试对您的数据进行一些更改,它似乎正在工作。如果您知道任何问题,请告诉我们,将尝试解决它

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

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

【讨论】:

  • 您使用的是哪个操作系统?你能分享一下确切的错误信息吗,因为我在和你分享之前已经测试过了
  • 如果你没有错误,这意味着它的工作,但不匹配它试图匹配的内容。因此,使用上面以 cat 开头的命令,尝试缩小标准,并检查几次。你会知道到底是什么不匹配,我们会找到解决方案
  • 不,因为值不会改变
  • 猫文件名 | sed 's/\"rpc-whitelist-enabled\": true/\"rpc-whitelist-enabled\" : false/g'
猜你喜欢
  • 2012-06-07
  • 1970-01-01
  • 2023-03-18
  • 1970-01-01
  • 2019-11-05
  • 1970-01-01
  • 2021-02-03
  • 1970-01-01
  • 2020-05-29
相关资源
最近更新 更多