grep を使用して、ファイルに指定されたブロック外<script>
のタグが含まれているかどうかを確認しようとしています: .{% block js %} ... {% endblock %}
ファイルに{% block page_content %}
要素が含まれていない場合は、無視する必要があります (すべてのテンプレートに実際にjs
ブロックが含まれているわけではありません)。
私がこれまでに持っている表現は次のとおりです。
grep -lrPz '(?s){% block (?!js).*? %}(?=.*?<script).*?{% endblock %}' src/
私が間違っていることはありますか?
検出する必要があるファイルは次のとおりです。
{% block page_content %}
{{ parent() }}
<script> console.log("Hello world"); </script>
{% endblock %}
検出されるべきではないファイルは次のとおりです。
{% block who_knows %}
{{ parent() }}
<script> console.log("Hello world"); </script>
{% endblock %}
{% block page_content %}
{{ parent() }}
{% endblock %}
{% block js %}
<script> console.log("Hello world"); </script>
{% endblock %}
{% block js %}
<script> console.log("Hello world"); </script>
{% endblock %}
{% block page_content %}
{{ parent() }}
{% endblock %}