0

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

4

2 回答 2

1

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

将其与findand结合使用xargs是使其适用于大量文件的良好开端。

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

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告诉它替换文件中的所有匹配项。
于 2014-10-22T07:32:39.407 回答
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' {} \;
于 2014-10-22T08:08:51.597 回答