我有数以千计的 HTML 文件,我想在 Fedora 系统上同时修改它们。这将是替换style.css
并../headers.css
替换您可以在此处看到的另一个长链:http: //pastebin.com/PHAz8Q4C
问问题
74 次
2 回答
1
我建议使用sed
可以对文件进行文本/正则表达式替换的工具。
将其与find
and结合使用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">«</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 回答