Блокированные кодовые блоки уценки выглядят следующим образом
```
Here is the code
in many lines
```
или примерно так:
```text
Here is the code
in many lines
```
«Текст» указывает язык, который должен использоваться для выделения.
Я хочу запустить поверх плоской директории и найти все файлы, которые содержат блоки изолированного кода без указанного языка. Как найти блоки огороженного кода без указанного языка?
Что я пробовал
Ниже приведен расширенный набор того, что я хочу:
$ grep -rIE -m1 "\`\`\`[[:space:]]*$" *
Проблема заключается в заключительная часть. По сути, это находит все файлы, которые вообще имеют блок изолированного кода. Но как мне использовать grep для каждого неравного тройного обратного удара?
Я предполагаю, что мне нужно выполнить grep для полного блока кода. Гарантируется, что после тройных обратных символов или языка есть новая строка.
Итак, я попробовал следующие два:
grep -rIzPo -m1 "\`\`\`\\n(.*?)\`\`\`" *
grep -rIzEo -m1 "\`\`\`\\n(.*?)\`\`\`" *
Он нашел пару случаев, но пропустил при хотя бы один. Я понятия не имею, почему.
Проблема: два кодовых блока
У меня много файлов с несколькими кодовыми блоками, например:
```python
a = "Hello"
b = "Stackoverflow"
print(f"{a} {b}")
```
and
```python
print("foobar")
```
Обратите внимание, что я не хочу файл с этим содержимым, чтобы соответствовать! Все регулярные выражения, которые я пробовал до сих пор, соответствуют
```
and
```python
print("foobar")
```