在双引号字符串中使用双引号(对于 sed)

在双引号字符串中使用双引号(对于 sed)

我正在向安装脚本添加附加功能,并决定编辑另一个文件以进行升级。为了实现这一点,我需要在 Linux 上使用以下命令来获取有效的 sed 命令:

sed -i "s/TM_JAVA_MEM_MIN="4096M"/TM_JAVA_MEM_MIN="5096M"/g" /tmp/conf/start_tm_console

上下文 sed 版本详细信息:

sed --version
sed (GNU sed) 4.2.2

我遇到的问题当然是使用""4096M 和 5096M 左右的值。不太确定如何完成 sed 命令让它忽略附加的"".有人遇到过这样的事情吗?

正在积极研究。

这是我的发现,当然不起作用:

sed -i "s/TM_JAVA_MEM_MIN=[\"]4096M[\"]/TM_JAVA_MEM_MIN=[\"]5096M[\"]/g" /tmp/conf/start_tm_console

sed -i 's~TM_JAVA_MEM_MIN="4096M"~TM_JAVA_MEM_MIN="5096M"~g' /tmp/conf/start_tm_console

编辑:

以下是该文件的一些内容。该文件仅出现一次上述行。

#
# This value must be a multiple of 1024 greater than 1MB. Append the letter k or
# K to indicate kilobytes, or m or M to indicate megabytes. The default value is
# 2MB.
#
[ -z "${TM_JAVA_MEM_MIN}" ] && TM_JAVA_MEM_MIN="4096M"

#
# Specify the maximum size, in bytes, of the memory allocation pool. This value
# must a multiple of 1024 greater than 2MB. Append the letter k or K to indicate
# kilobytes, or m or M to indicate megabytes. The default value is 64MB.
#
[ -z "${TM_JAVA_MEM_MAX}" ] && TM_JAVA_MEM_MAX="6144M"

答案1

谢谢你!

sed -i 's~TM_JAVA_MEM_MIN="4096M"~TM_JAVA_MEM_MIN="5096M"~g' /tmp/conf/start_tm_console

我可以确认这确实有效。我在生产中的原始文件上使用了 cat,但看不到我的更改。 ;P!

相关内容