Использование 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