bash – 使用shell脚本替换文件中的字符串
发布时间:2020-12-15 22:29:25 所属栏目:安全 来源:网络整理
导读:假设我的文件a.conf如下 Include /1Include /2Include /3 我想用新行替换“Include / 2”,我在.sh文件中编写代码: line="Include /2"rep=""sed -e "s/${line}/${rep}/g" /root/new_scripts/a.conf 但运行sh文件后,它给我以下错误 sed: -e expression #1,cha
假设我的文件a.conf如下
Include /1 Include /2 Include /3 我想用新行替换“Include / 2”,我在.sh文件中编写代码: line="Include /2" rep="" sed -e "s/${line}/${rep}/g" /root/new_scripts/a.conf 但运行sh文件后,它给我以下错误 sed: -e expression #1,char 14: unknown option to `s' 解决方法
如果您使用的是较新版本的sed,则可以使用-i来读取和写入同一文件.使用-i,您可以指定文件扩展名,以便进行备份,防止出现问题.除非您使用多个命令,否则您不需要使用-e标志
sed -i.bak "s/${line}/${rep}/g" /root/new_scripts/a.conf 我刚刚注意到,由于您使用的变量是带引号的字符串,您可能希望在sed表达式周围使用单引号.您的字符串也包含正斜杠,以避免任何错误,您可以在sed命令中使用不同的分隔符(分隔符不需要是斜杠): sed -i.bak 's|${line}|${rep}|g' /root/new_scripts/a.conf (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |