如何同时修改很多html文件?

时间:2014-10-22 07:30:14

标签: html css fedora20

我想在Fedora系统上同时修改数千个HTML文件。 将style.css替换为../headers.css并替换您可以在此处看到的另一条长链:http://pastebin.com/PHAz8Q4C

2 个答案:

答案 0 :(得分:1)

我建议使用像sed这样的工具,它可以对文件进行文本/正则表达式替换。

将此与findxargs相结合是一个良好的开端,可以使其适用于大量文件。

因此,例如,您可以执行类似

的操作

find -name "*.html" -print0 | xargs -0 sed -i 's#style.css#../headers.css#g'

由于无法撤消此操作,我建议备份文件以防万一(或使用版本控制!)

编辑: 有关如何将其扩展到其他搜索/替换术语(如您的pastebin)的指南:

同样的想法。只要确保你正确逃脱一切。作为一个可以让你更进一步的解释...

  • find找到所有html个文件
  • xargs在每个文件后面运行命令
  • sed执行替换
  • -i告诉sed执行此操作
  • s告诉Substitute
  • style.css是要替换的内容
  • ../headers.css是用
  • 替换它的内容
  • g告诉它替换文件中的所有匹配项。

答案 1 :(得分:0)

对于您的长代码,您可以尝试以下代码:

find . -name "*.html" -exec sed -i 's#<a href="\.\./index.html">&laquo;</a> <h1>\(.*\)</h1>#<section class="skin-organic" role="region">\n  <header>\n    <a href="../index.html"><span class="icon icon-back">back</span></a>\n    <h1>\1</h1>\n  </header>\n</section>#g' {} \;