我已經在使用bash腳本。它只計算* .cpp中的行數。如何在沒有pugixml.cpp的情況下在* .h文件中計算行數?僅在類型爲* .cpp和* .h的文件中計數行
find . -type f -name \*.cpp -and ! -name \pugixml.cpp -exec cat '{}' + | wc -l
我已經在使用bash腳本。它只計算* .cpp中的行數。如何在沒有pugixml.cpp的情況下在* .h文件中計算行數?僅在類型爲* .cpp和* .h的文件中計數行
find . -type f -name \*.cpp -and ! -name \pugixml.cpp -exec cat '{}' + | wc -l
使用-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 {} +
沒有找到'-exec'命令,你的意思是: 'kexec-tools'命令'kexec'(主) 'gexec'命令'gexec'(宇宙) 命令'jexec'來自'openjdk' -6-jre-headless'(main) -exec:找不到命令 – 2011-04-26 19:20:56
大多數find版本都支持「-exec」命令。顯然,你的不。我知道的唯一版本不在Solaris上,在這種情況下,您可以使用gfind。 – 2011-04-26 19:27:43
通過刪除找到的每個文件的單個進程來更快速地執行命令:find。 -type f \(-name \ *。cpp -o -name \ *。h \)! -name pugixml.cpp | xargs wc -l – 2011-04-27 13:25:17
聽起來像你真的想要sloccount。
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'
你能澄清?你的意思是所有.h文件,還是每個現有的.cpp文件對應的.h文件? – 2011-04-26 19:18:00