在 Rocky Linux 8 上,可以使用 sed 命令批量替换指定网址,并配合 find 命令处理所有 HTML 文件。
示例命令:
find /path/to/directory -type f -name "*.html" -exec sed -i 's|旧网址|新网址|g' {} +
命令解析:
find /path/to/directory -type f -name "*.html"- 查找
/path/to/directory目录下所有.html文件。
- 查找
-exec sed -i 's|旧网址|新网址|g' {} +- 使用
sed进行 就地修改(-i),将 旧网址 替换为 新网址。 s|旧网址|新网址|g:替换所有匹配的内容。{}代表find结果的文件名,+使find传递多个文件,提高效率。
- 使用
示例
假设你要替换 /var/www/html 目录下所有 HTML 文件里的 http://old.example.com 为 https://new.example.com,命令如下:
find /var/www/html -type f -name "*.html" -exec sed -i 's|http://old.example.com|https://new.example.com|g' {} +
如果你需要更强大的替换功能,可以用 perl:
find /var/www/html -type f -name "*.html" -exec perl -pi -e 's|http://old.example.com|https://new.example.com|g' {} +
⚠ 注意:
- 建议先备份文件,以防替换出错:
cp -r /var/www/html /var/www/html_backup sed可能对一些特殊字符(如/、&)敏感,可以用|代替/作为分隔符,避免转义符\。
如果有更复杂的需求,可以告诉我具体情况,我帮你优化命令。 😊