我正在向安装脚本添加附加功能,并决定编辑另一个文件以进行升级。为了实现这一点,我需要在 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!