У меня есть фрагмент кода int t.c, например
val = (val1 << 8) | (val >> 8 );
val = (val2 << 16) | (val >> 8 );
val = (val3 << 32) | (val >> 8 );
val = (val << 8);
Я получу вывод, если я выполню grep как grep -nhE "(<<.*|).*(>>)" t.c
1:val = (val1 << 8) | (val >> 8 );
2:val = (val2 << 16) | (val >> 8 );
3:val = (val3 << 32) | (val >> 8 );
Но если выполнить поиск с помощью cppcheck, например ./cppcheck --rule="(<<.*|).*(>>)" t.c
, я получу вывод
[../test/t.c:1]: (style) found ' val = ( val1 << 8 ) | ( val >> 8 ) ; val = ( val2 << 16 ) | ( val >> 8 ) ; val = ( val3 << 32 ) | ( val >>'
т.е. отображаются все совпадающие строки вместе с первого совпадения. Мне нужен результат, как в команде grep.
Пожалуйста помоги
|
вы эффективно ищете>>
only. комбинируя более простое выражение с выводом, совместимым с vs, используйте./cppcheck --template=vs --rule=">>" t.c
. вы можете определить свой собственный шаблон для форматирования вывода, см. главу 5 руководства. - person collapsar   schedule 10.07.2013