я должен отфильтровать из огромного количества CPP файлов все макросы определены, за исключением охранников, например:Использование регулярного выражения для фильтрации для препроцессорных директив?
#if <NAME>
#ifdef <NAME>
#ifndef <NAME>
#if defined(<NAME>)
#if defined <NAME>
!defined(<NAME>)
!defined <NAME>
#else if <NAME>
#elif <NAME>
Я должен получить все имена, но не все они в виде XXX, из-за разных программистов, работающих над проектом, существует множество определений, поэтому я сталкиваюсь с проблемами в определении регулярного выражения, которое может экстраполировать только <NAME>
из каждой описанной ситуации.
Любые советы приветствуются!
EDIT Как кто-то указал, мое имя (с surrondings <) только заполнителем, где в действительности это может быть XXXX, XXXX, _XX_Y_, _XXX, _XXX_Y, XXYY, где X и Y может быть заглавные буквы или цифры, без регулярности в имени! они являются директивами для препроцессора, и я должен их отфильтровать.
Это работа для 'grep' или' awk', в зависимости от того, что вам нужно делать с линиями, которые вы найдете. –