test23文件包含一行
root_url = %(protocol)s://%(domain)s:%(http_port)s/
我需要替换为
root_url = %(protocol)s://%(domain)s:%(http_port)s/grafana
此脚本中的以下步骤不起作用。
line_old='root_url = %(protocol)s://%(domain)s:%(http_port)s/'
line_new='root_url = %(protocol)s://%(domain)s:%(http_port)s/grafana'
sed -i "s/\${line_old}\/\${line_new}/\g" test23
答案 0 :(得分:0)
尝试更改sed的分隔符:
sed -i "s|${line_old}|${line_new}|g" test23
示例
echo "${line_old}" | sed "s|${line_old}|${line_new}|g"
root_url = %(protocol)s://%(domain)s:%(http_port)s/grafana
答案 1 :(得分:0)
我会使用:
sed '/^root_url[ ][=]/s/$/grafana/' filename
位置:
/^root_url[ ][=]/
找到以"root_url ="
开头的行,然后's/$/grafana/'
只需在行尾添加“ grafana”。(注意:添加-i
以就地编辑文件,或添加-i.bak
进行就地编辑,保留{{ 1}})
结果
filename.bak
仔细检查一下,让我知道是否满足您的需求以及是否有任何疑问。