Я застрял в построении выражения sed, которое будет анализировать импорт файла python и извлекать имена модулей.Использование sed для интерпретации нескольких строк при условии
Это простой пример, который я решил с помощью (мне нужен выход, чтобы быть имена модулей без «как» или любых пространств ..):
from testfunctions import mod1, mod2 as blala, mod3, mod4
То, что я до сих пор:
grep -ir "from testfunctions import" */*.py | sed -E s/'\s+as\s+\w+'//g | sed -E s/'from testfunctions import\s+'//g
Это дает мне необходимый результат в ситуации, как указано выше.
Проблема: В файлах, где импорт подобны так:
from testfunctions import mod1, mod2 as blala, mod3, mod4 \
mod5, mod6 as bla, mod7 \
mod8, mod9 ...
Любые идеи, как я могу улучшить свою трубопроводную выражение для обработки нескольких строк?
вам нужно использовать 'sed'? 'awk' будет проще (и почему бы не python?) Удачи. – shellter
Sed - редактор строк, он читает одиночные строки, вы можете использовать 'N' или' n' для получения следующей строки. Также вы все равно вернете только одну строку из вашего grep. – 123
@shellter Я на самом деле думаю, что это проще в sed. Вы просто получите следующую строку, чтобы больше не ускользнуть, а затем сделать простой суб. – 123