【发布时间】:2021-07-05 03:45:03
【问题描述】:
我有下面的脚本,其中包含各种命令,我需要用一些新内容修改/替换一行,并在上方添加注释说明更改的原因。
当前脚本如下所示:
some random commands
some random commands
some random commands
some random commands
some random commands
OLM_VARIABLE=="-XYZ2048m ${OLM_VARIABLE} -XX:MaxBlahspaceSize=256m"
some random commands
some random commands
some random commands
some random commands
some random commands
预期的输出如下:
预期输出:
some random commands
some random commands
some random commands
some random commands
some random commands
##
# 2021-04-09 first comment line here
# 2021-04-09 second comment line here
##
OLM_VARIABLE="-XYZ2048m ${OLM_VARIABLE} -XX:MaxBlahspaceSize=512m -Dxyz.updateBlahConnectTimeout=10 -Dxyz.masterUpdateTimeInterval=123456"
some random commands
some random commands
some random commands
some random commands
some random commands
到目前为止我尝试了什么:
方法一:
sed -i.bak $'s/OLM_VARIABLE=="-XYZ2048m ${OLM_VARIABLE} -XX:MaxBlahspaceSize=256m"/##\\\n# 2021-04-09 first comment line here \\\n# 2021-04-09 second comment line here \\\n##\\\nOLM_VARIABLE="-XYZ2048m ${OLM_VARIABLE} -XX:MaxBlahspaceSize=512m -Dxyz.updateBlahConnectTimeout=10 -Dxyz.masterUpdateTimeInterval=123456"/g'
输出:
sed: -e expression #1, char 104: unknown option to `s'
方法二:
插入_this.txt:
##
# 2021-04-09 first comment line here
# 2021-04-09 second comment line here
##
OLM_VARIABLE="-XYZ2048m ${OLM_VARIABLE} -XX:MaxBlahspaceSize=512m -Dxyz.updateBlahConnectTimeout=10 -Dxyz.masterUpdateTimeInterval=123456"
我正在尝试使用上面的文件insert_this.txt,其中包含将用于替换的内容:
awk '/OLM_VARIABLE=="-XYZ2048m ${OLM_VARIABLE} -XX:MaxBlahspaceSize=256m"/{system("cat insert_this.txt");next}1' file > file_new
输出:没有任何反应。原始文件保持原样
但他们都没有帮助实现我想要的。有人可以帮我吗?提前致谢。
【问题讨论】: