本文最后更新于 217 天前,其中的信息可能已经有所发展或是发生改变。
要在所有的 .conf
文件中将 listen 443 ssl http2;
替换为 listen 443 ssl; http on;
,你可以使用 sed
命令。sed
是一个流编辑器,用于对输入流(或文件)进行基本的文本转换。
下面是一个简单的命令,它会递归地搜索当前目录及其子目录中的所有 .conf
文件,并替换指定的文本:
find . -type f -name "*.conf" -exec sed -i 's/listen 443 ssl http2;/listen 443 ssl;\n\thttp2 on;/g' {} +
这个命令的解释如下:
find . -type f -name "*.conf"
:查找当前目录及其子目录中所有的.conf
文件。-exec ... {} +
:对找到的每个文件执行指定的命令。{}
是一个占位符,代表当前正在处理的文件名。sed -i 's/原字符串/新字符串/g'
:使用sed
进行文本替换。-i
选项表示直接修改文件内容,而不是输出到标准输出。s/原字符串/新字符串/g
是替换命令,其中g
表示全局替换(即替换每一行中的所有匹配项)。
注意:这个命令假设你的 sed
版本支持 -i
选项的扩展用法(即使用 {} +
来一次性处理多个文件)。在某些系统上,你可能需要为 -i
选项提供一个备份文件扩展名,例如 -i.bak
,这样 sed
会在修改文件之前创建一个备份。
另外,这个命令将 http2 on;
添加到新的一行,并添加了一个制表符(\t
)进行缩进。如果你需要不同的缩进或格式,可以相应地调整 sed
命令中的字符串。
在执行这个命令之前,建议先备份你的 .conf
文件,以防万一出现不可预见的问题。