Я хотел бы просканировать мой источник на наличие определенных строк, таких как:
$obj->setLabel('output this text')->someOtherMethod(etc);
или:
$this->view->title = "I want this text";
Очевидно, что код PHP.Я использую Zend Framework.Это не имеет значения.
Я использую Linux и разбираюсь в каналах.Я предполагаю, что мог бы передать:
grep --include=*.php -R 'setLabel(' .
в awk или что-то еще.Я просто хочу, чтобы каждый из «одного или нескольких» символов выводился на отдельной строке в кавычках, оканчиваясь запятой.Файлы для перевода CSV не за горами.
Я ожидаю, что буду искать только один паттерн за раз.Итак, сначала я получу все «Метки» и т. Д.
note: Я знаю о POedit и т. Д. Я использую файлы CSV для статических переводов пользовательского интерфейса.Я не собираюсь это менять.Они должны быть доступны для редактирования сторонним разработчикам, которые просто хотят использовать «Excel» (дрожь ...)
Это то, что я в итоге использовал:
grep -oh --include=*.php -R -E "setLabel\('[^']*'\)" . > labels.txt
И затем удалениенежелательные "setLabel (" и ")" в текстовом редакторе.Тем не менее, я очень стремлюсь к более чистой однострочности.Ох ... Есть также код-гольф.Я должен спросить тех парней ...