天天看點

Linux程式設計(Linux shell程式設計的例子:統計代碼行數)

各位看官們,咱們今天還是接着上一回的内容,列舉具體的例子給大家。閑話休說,言歸正轉。

各位看官們,在實際的工作中經常需要統計代碼行數。不知道看官們有什麼好的統計方法?大家都不說話。

看來是沒有,接下來咱們說幾種方法來統計代碼行。

使用工具統計代碼行:現在的內建開發工具都有顯示行号的功能。比如Visual Studio系列,Eclipse。

大部分的文本工具也能顯示檔案行号,比如咱們前面說的Gedit,Vim.Windows環境下的Notepad++等。

使用這些工具打開檔案,然後打開顯示行号的功能,到檔案尾就能清楚的看到檔案的行号,通過工具看到

的行号和代碼行數是等價的。

使用指令統計代碼行:Linux中cat和wc指令都可以統計檔案的行數。具體的指令如下:

cat -n FileName。或者cat -b FileName.

wc -l FileName

接下來咱們通過舉例子來說明,如何使用這些指令來統計代碼行。

首先打開/home/test/a.c并且輸入以下内容,然後儲存該檔案。

#include<stdio.h>

int main(void)

{

    printf("hello \n");

    return 0;

}

打開終端,在終端中輸入cat -n /home/test/a.c指令,執行該指令後可以得到以下結果:

  1    #include<stdio.h>

  2    

  3    int main(void)

  4    {

  5        printf("hello \n");

  6        return 0;

  7    }

看官們可以看到該指令實際上是在代碼前面加了行号,它和使用工具統計代碼行的方法在本質上相同。

在終端中輸入cat -b /home/test/a.c指令,執行該指令後可以得到以下結果:

  1    #include<stdio.h>

  2    int main(void)

  3    {

  4        printf("hello \n");

  5        return 0;

  6    }

看官們,對比這兩個指令的結果,可以看到,選項n可以給所有行加上行号,選項b隻給非空白行加行号,

如果不想統計空白行,或者說想統計有效的代碼行,可以使用選項b。

在終端中輸入:wc -l /home/test/a.c指令,執行該指令後可以得到以下結果:

7 /home/test/a.c

該結果前面的數字7表示a.c檔案中有7行代碼。

對比cat和wc這兩個指令可以發現,cat指令是通過顯示行号的方式來統計代碼行,它不僅統計了代碼行

數,而且也把每行的内容顯示了出來。wc指令隻顯示具體的行數,不會顯示每行的内容。從這兩個指令的

執行結果可以看出,wc在統計代碼行數上更加專業一些。

看官們,在實際的工作中,需要統計的檔案通常不止一個,下面通過例子來介紹一種統計多個檔案代碼行

的方法。在/home/test/目錄中再建立2個和a.c内容一樣的檔案,分别取名叫a1.c和a2.c。然後在終端中執

行下面的指令:

find /home/test/ -name "*.c" | xargs wc -l

指令執行的結果如下:

7 /home/test/a.c

7 /home/test/a1.c

7 /home/test/a2.c

該指令結合了find和wc兩種指令,它把find指令的結果當作了wc指令的操作對象,這主要歸功于管道和

xargs指令。find指令的結果通過管道變成了xargs指令的輸入,而xargs指令又把它的輸入當作參數傳

遞給了wc指令,是以達到了統計多個檔案代碼行數的效果。

各位看官們,今天的例子就到此為止,欲知後面還有什麼好的例子,且聽下回分解。