想用bash更改conf文件中的完整行,请指导我
我的conf文件中有这一行想用bash更改conf文件中的完整行,请指导我,bash,shell,Bash,Shell,我的conf文件中有这一行 ssl_certificate /etc/nginx/sites-enabled/abc.com/abc.com_fullchain.txt; 所以我想把它改成 ssl_certificate /var/www/ssl/nginx/abc.com/abc.com_fullchain.txt; 如何在多个*.conf文件中执行此操作?您可以使用sed实现此操作,如下所示: sed -i 's/ssl_certificate \/etc\/nginx\/sites-e
ssl_certificate /etc/nginx/sites-enabled/abc.com/abc.com_fullchain.txt;
所以我想把它改成
ssl_certificate /var/www/ssl/nginx/abc.com/abc.com_fullchain.txt;
如何在多个
*.conf
文件中执行此操作?您可以使用sed
实现此操作,如下所示:
sed -i 's/ssl_certificate \/etc\/nginx\/sites-enabled\/abc.com\/abc.com_fullchain.txt;/ssl_certificate \/var\/www\/ssl\/nginx\/abc.com\/abc.com_fullchain.txt;/g' ./*.conf
请注意,目录字符串中的正斜杠需要用反斜杠转义。您能更具体一点吗?运行此命令时发生了什么?@binbashbosh在我的环境中,命令末尾的
/g
不是必需的。它提供了什么?我得到了这个“sed:-e表达式#1,char 110:unterminated`s'命令”,而且,我有多个conf文件,名称像abc.com.conf;xyz.com.conf等。。。。所以我不想对300个文件运行这个命令。因此,请指导我如何做到这一点。您是否尝试过编辑中列出的命令?至于限制将此应用于哪些文件,可以将命令中的*.conf
替换为所需文件的全名。如果要更改的所有文件在其名称中共享一个公共模式,则可以使用。因为您还没有给出关于用例的任何更具体的信息,所以我将让您研究如何匹配所需的文件名。