使用 sed 替换特定字符串后的引号内的字符串
Replace a string within quotes that succeeds a specific string using sed
我有以下行:
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=x.x.x.x -Dremoting.bind_by_host=false -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=假“
我尝试在 https://unix.stackexchange.com/questions/66878/how-can-i-replace-text-after-a-specific-word-using-sed 之后使用 sed,但没有成功。
问题是由于双引号引起的。感谢任何帮助。
如果你有
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 "
我有以下行:
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=x.x.x.x -Dremoting.bind_by_host=false -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=假“
我尝试在 https://unix.stackexchange.com/questions/66878/how-can-i-replace-text-after-a-specific-word-using-sed 之后使用 sed,但没有成功。
问题是由于双引号引起的。感谢任何帮助。
如果你有
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 "