2012-06-13 2 views
1

Я хочу отфильтровать предупреждения doxygen с помощью grep, чтобы отключить предупреждение недокументированных параметров для определенных параметров. Я пробую это:Выход фильтра Doxygen с grep

doxygen doxycfgfile | grep -v "parameter x" 

Однако это, похоже, абсолютно не влияет на выход. Ни строки, содержащие parameter x, не подавляются, ни все другие строки. Вывод выглядит точно так же.

Я использую tcsh.

ответ

3

Предположительно это происходит потому, что незарегистрированные предупредительные сообщения параметров записываются в стандартной ошибки (Stderr), а не стандартный вывод (стандартный вывод). С трубой (|) вы всего лишь труба stdout до grep.

Вы можете попробовать сделать что-то вроде

doxygen doxycfgfile |& grep -v "parameter x" 

От advanced bash scripting guide:

Если |& используется стандартная ошибка command1 подключен к command2 «s стандартного ввода через трубу; это сокращение для 2>&1 |.

Заметим, что это был добавлен в Bash 4, так и для более ранних версий вы будете иметь вы используете 2>&1 | вместо |&.

В качестве альтернативы, вы можете просто избавиться от стандартного вывода ошибок, используя что-то вроде

doxygen doxycfgfile 2>/dev/null 

Это answer на askubuntu был источником моего ответа.

+0

спасибо, что это работает, теперь мне просто нужно изменить мое регулярное выражение, чтобы оно соответствовало всей ошибке, генерируемой для отсутствующего параметра, где параметр x является единственным параметром. но это не является частью вопроса. В противном случае это работает как шарм – ted

Смежные вопросы