如何統計代碼行數

如何統計代碼行數

  • linux下提供了很多實用工具,甚至在安卓上,都有移植的busybox包含這些工具。
  • 根據KISS理念,這些工具的功能很單一。但這些工具組合起來,就可以很方面的統計代碼量了。

統計代碼行數

  • 流程爲:首先使用find命令找到所有後綴名符合規則的源代碼文件,之後使用wc命令統計行數。文件數可能過多,爲防止出錯使用xargs命令分割參數列表,最後得到的結果可以使用sort排序
  • 統計所有c源代碼行數的命令:find -name *.c | xargs wc -l |sort -r。結果按照反序排列
  • find -name *.c | xargs wc -l |sort -k2 結果按照文件名排列
  • 如需統計c++代碼,將*.c更改爲*.cc即可。如果c++使用cpp後綴名,改爲*.cpp

用到的命令詳解

find命令

  • find命令遞歸搜索目錄,若任一文件使表達式爲真則放入結果
  • 使用方法find [path...] [expression]
  • path指定需要尋找的目錄範圍,默認爲當前目錄
  • expression通常爲測試條件,返回true或false
  • -name pattern文件名符合shell正則式
  • -path pattern文件路徑名符合shell正則式
  • -exec order {}執行命令,若返回值爲0則真
  • 例子:find -name *.c 搜索後綴名爲c的文件
  • 例子:find . -exec sleep {1} 每隔1s顯示一個文件

wc命令

  • wc爲wordcount的縮寫,用於統計文件
  • 使用方法wc [-lwc] filename
  • l、w、c分別表示統計行數、單詞數、字符數。默認爲統計全部三者
  • 例子:wc -l file1 file2統計兩文件的行數

xargs命令

  • xargs的功能是捕獲管道中前一個命令的輸出,建立分段參數表並執行另一個命令
  • find命令如果產生的參數列太長,可以使用xargs命令每次只傳遞一部分參數,防止在部分系統上出現溢出錯誤
  • xargs通常以空格或者換行符分割參數,-0選項可以保證參數列中含有空格、換行符等時分割正確
  • 例子:find /tmp -name core | xargs -0 /bin/rm -f。把/tmp文件夾下所有名稱爲core的文件傳遞給rm命令,強制刪除。-0選項可以保證正確處理文件名中含有換行或空格的情況。

sort命令

  • sort用於對不同的文本進行排序,以行爲單位
  • 默認排序方式爲升序,-r選項可以修改爲降序排列
  • -n選項按照字符表示的數字的值來排序,如1 2 10 20沒有開啓此選項排序結果爲1 10 2 20
  • -f忽略大小寫
  • -t設置列之間的分隔符,-k指定按照第幾列排序
  • 例子:sort -n -f -k 2 test.txt。將test.txt中的各行按照第二列排序,忽略大小寫

重定向

  • 行數統計結果可以存入文本文件中,命令行最後加上> count.txt即可
  • 標準輸入、輸出、錯誤輸出分別用0,1,2表示
  • 輸入重定向使用輸入重定向運算符<,可以把文件中的內容作爲程序的輸入。例如測試代碼時使用:./a.out < test.in,test.in文件裏面是程序的測試輸入
  • 輸出重定向可以將程序的輸出寫入到文件中,使用輸出重定向運算符>
    • 例子:ls 1>/dev/null 2>/dev/null 不顯示輸出和錯誤輸出。1、2與>之間不能有空格
    • 例子:ls 2> &1> t.txt 將錯誤輸出重定向到標準輸出,而此時標準輸出還未重定向,因此標準輸出內容將寫入t.txt,而錯誤輸出仍留在屏幕上
    • 例子:ls 1> t.txt 2> &1將標準輸出和錯誤輸出都寫入t.txt

管道

  • 管道使用|表示
  • 功能爲前一個命令的標準輸出定向爲第二個命令的標準輸入
  • 第二個命令必須能從標準輸入中讀取才行,如ls命令就不符合要求

 
 

轉載請註明作者:Focustc,博客地址爲http://blog.csdn.net/caozhk,原文鏈接爲點擊打開

 
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章