我已经关注了bash脚本。它只计算* .cpp中的行数。如果没有pugixml.cpp,我如何计算* .h文件中的行?
find . -type f -name \*.cpp -and ! -name \pugixml.cpp -exec cat '{}' + | wc -l
答案 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'