Использование grep (в Windows) для поиска строки, содержащей

Я пытаюсь написать сценарий оболочки в Windows, поэтому я не использую что-то вроде awk или же grep -o и т.п.

Я пытаюсь разобрать мои угловые файлы для используемых контроллеров. Например, у меня будет такая строка в файле.

widgetList.controller('widgetListController', [

Что я хочу это вытащить widgetListController

Вот что у меня так далеко:

grep -h "[[:alpha:]]*Controller[[:alpha:]]*" C:/workspace/AM/$file | tr ' ' '\n' | grep -h "[[:alpha:]]*Controller[[:alpha:]]*"

Он работает прилично хорошо, но вытащит всю строку примерно так:

widgetList.controller('widgetListController', а не просто слово.

Также в тех случаях, когда контроллер отформатирован так:

controller : 'widgetListController',

Возвращается 'widgetListController',

Как я могу настроить это, чтобы просто вернуть то, что находится между ними? Я пробовал разные способы избежать этого персонажа, но, похоже, он не работает.

1 ответ

Решение

Вы можете использовать эту команду sed:

sed "/Controller/s/.*'\([^']*\)'.*$/\1/" C:/workspace/AM/$file

Выход:

widgetListController
Другие вопросы по тегам