仅计算* .cpp和* .h类型的文件中的行

时间:2011-04-26 19:15:19

标签: c++ linux bash shell

我已经关注了bash脚本。它只计算* .cpp中的行数。如果没有pugixml.cpp,我如何计算* .h文件中的行?

find . -type f  -name \*.cpp -and ! -name \pugixml.cpp -exec cat '{}' + | wc -l

3 个答案:

答案 0 :(得分:10)

使用-o查找名为*.cpp*.h的文件,并为优先级添加括号。请注意,我删除了-and\pugixml中的反斜杠,因为它们是不必要的(尽管无害)。

find . -type f \( -name \*.cpp -o -name \*.h \) ! -name pugixml.cpp -exec cat {} + | wc -l

另外,您可以将find -exec cat {} + | wc -l简化为find -exec wc -l {} +。这将显示每个文件的统计信息以及总计数。

find . -type f \( -name \*.cpp -o -name \*.h \) ! -name pugixml.cpp -exec wc -l {} +

答案 1 :(得分:4)

听起来你确实想要sloccount

答案 2 :(得分:0)

Grep it!它 您知道,如果您只想计算 *。h 文件,则会自动排除pugixml.cpp

sloccount --duplicates --wide --details . | grep -e "\.h$"

如果你真的需要明确排除pugi:

sloccount --duplicates --wide --details . | grep -e "\.h$" | grep -v -e 'pugixml.cpp'