gpt4 book ai didi

bash - 使用shell脚本替换文件中的字符串

转载 作者:行者123 更新时间:2023-11-29 09:01:22 27 4
gpt4 key购买 nike

假设我的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

关于bash - 使用shell脚本替换文件中的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8486967/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com