У меня есть каталог с примерно 30 файлами Python с похожим шаблоном, примерно так:
import stuff
class BarFoo001(BarFooBase):
info = self.info
description = 'here's the stuff I want'
IS_CRITICAL = true
def method(sdf):
etc...
Я бы хотел извлечь из каждого файла только строки с именем класса и описанием (просто текстдля справки мне не нужен рабочий файл Python).
Моей первой мыслью было сделать это с помощью инструментов оболочки.Я использовал cat *.py > all.py
, а затем попытался sed -i -e 's/BarFooBase\(.*\)IS_CRITICAL/\1/' all.py
, но это, похоже, не дало результата.Я также пытался использовать RegEx в своей IDE и, наконец, в Python (re.sub('IS_CRITICAL[^>]+\nclass Bar', '', my_string)
), но ни один из них не дал мне желаемых результатов.Что не так с моим Regex?Кроме того, есть ли более простой способ сделать это, что я упускаю?
Вот будет достаточно хороший вывод:
класс BarFoo001 (BarFooBase):
info = self.info
description = 'вот что я хочу'
IS_CRITICAL