コードスニペット int tc のようなものがあります
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 コマンドのように結果が必要です。
助けてください