【问题标题】:Replace a string within quotes that succeeds a specific string using sed使用 sed 替换在特定字符串之后的引号内的字符串
【发布时间】:2017-02-21 13:26:19
【问题描述】:

我有以下行:

KAFKA_JMX_OPTS="-Dcom.sun.management.jmxremote.authenticate -Dcom.sun.management.jmxremote.ssl=false"

但我尝试将其替换为:

KAFKA_JMX_OPTS="-Dcom.sun.management.jmxremote=true -Djava.rmi.server.hostname=xxxx -Dremoting.bind_by_host=false -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management .jmxremote.ssl=false "

我尝试在https://unix.stackexchange.com/questions/66878/how-can-i-replace-text-after-a-specific-word-using-sed 之后使用 sed,但没有运气。

问题是因为双引号。任何帮助表示赞赏。

【问题讨论】:

    标签: replace sed text-processing


    【解决方案1】:

    如果你有

    line='KAFKA_JMX_OPTS="-Dcom.sun.management.jmxremote.authenticate  -Dcom.sun.management.jmxremote.ssl=false "'
    

    那你就可以了

    $ line=$(sed '
        s/"/"Dcom.sun.management.jmxremote=true -Djava.rmi.server.hostname=x.x.x.x /
        s/authenticate/&=false/
    ' <<<"$line")
    $ echo "$line"
    KAFKA_JMX_OPTS="Dcom.sun.management.jmxremote=true -Djava.rmi.server.hostname=x.x.x.x -Dcom.sun.management.jmxremote.authenticate=false  -Dcom.sun.management.jmxremote.ssl=false "
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-11-11
      • 2021-11-17
      • 2022-11-17
      • 2020-03-27
      • 1970-01-01
      相关资源
      最近更新 更多