Templates 通过命令行一次编辑N个模板?

Templates 通过命令行一次编辑N个模板?,templates,replace,django-templates,Templates,Replace,Django Templates,我有包含此块的模板: {% extends 'core/master.html' %} {% block content %} {% block text %} {{ content }} {% endblock %} {% endblock %} 大约有50个html模板 这个区块是不需要的,我想删除它 不幸的是,它周围的空白不同(有时空白更多,有时更少…) 如何一次编辑N个html模板 < P> >我想在命令行上这样做。 < P>假设您正在寻找文本的搜索和

我有包含此块的模板:

{% extends 'core/master.html' %}

{% block content %}
    {% block text %}
        {{ content }}
    {% endblock %}
{% endblock %}
大约有50个html模板

这个区块是不需要的,我想删除它

不幸的是,它周围的空白不同(有时空白更多,有时更少…)

如何一次编辑N个html模板


< P> >我想在命令行上这样做。

< P>假设您正在寻找文本的搜索和替换(具有较小的空白空间变化),然后考虑使用命令行Perl一个内衬,如在中讨论的或更好的。 我使用的是mac电脑,但在其他*nix系统上也应该可以使用。 不过,我最初考虑的是,这个建议的解决方案似乎不能通过修改来处理slurping文件

多行替换的简单示例如下:

find . -name '*.txt' | xargs perl -i -0pe  's/peter\s+is\s+good//mg'
稍微混乱的部分是构造正确的正则表达式。我已经通过创建一些示例文件来运行了一些测试,这些文件与您的规范相匹配,符合以下要求,并且看起来工作正常

find . -name '*.html' | xargs perl -i -0pe  's|\{\%\s+extends\s+.core/master.html.\s+\%\}\s+\{\%\s+block\s+content\s+\%\}\s+\{\%\s+block\s+text\s+\%\}\s+\{\{\s+content\s+\}\}\s+\{\%\s+endblock\s+\%\}\s+\{\%\s+endblock\s+\%\}||xosmg'
请注意,正则表达式包含一个或多个空格\s+匹配项,并且还需要转义特殊字符“{'、“}”和“%”


初始测试表明,这将适用于您的示例。

块中是否有除空格以外的其他内容,或者在所有
html
模板中都是相同的内容?@dimitiosstrantsalis没有,只有空格。如果有什么事情不应该发生,那么如果我做对了,那是编辑的问题。您在项目中使用的编辑器是什么?@DimitriosStrantsalis我想在命令行上执行此操作。我几乎可以肯定,使用Atom可以非常轻松地完成此操作。如果您想在命令行上执行此操作,我建议您更改问题的标记,以便它能够引起能够提供帮助的人的注意!很久以来我就没有使用过perl。但是是的,这是有效的。非常感谢。