特定のフォルダーまたはファイルを除いたプロジェクト内の総行数をカウントします。

StackOverflow https://stackoverflow.com/questions/6016608

質問

コマンドの使用:

wc -l + `find . -name \* -print` 

フォルダー内の全ファイルの合計行数を取得できます。

ただし、自分が作成したものではないため行数をカウントしたくないフォルダー (ライブラリなど) がいくつかあるとします。

では、特定のフォルダーを除いたプロジェクト内の行数はどのように数えるのでしょうか?

役に立ちましたか?

解決

find, 、次のようにして一致条件を「無効」にすることもできます。 !. 。たとえば、すべてをリストしたい場合は、 .java ディレクトリ内のファイル(以下を含むファイルを除く) Test:

find . -name "*.java" ! -name "*Test*"

お役に立てれば!

編集:

ちなみに、 -name 述語はファイル名のみをフィルターします。パスをフィルタリングしたい場合(ディレクトリをフィルタリングできるように)、次を使用します。 -path:

find . -path "*.java" ! -path "*Test*"

他のヒント

cloc SRCコードの行をカウントする必要があるときはいつでも常に素晴らしい友達でした。例として2.6.29 Linuxカーネルを使用する:

$ cloc .

   26667 text files.
      26357 unique files.
          2782 files ignored.

http://cloc.sourceforge.net v 1.50  T=168.0 s (140.9 files/s, 58995.0 lines/s)
--------------------------------------------------------------------------------
Language                      files          blank        comment           code
--------------------------------------------------------------------------------
C                             11435        1072207        1141803        5487594
C/C++ Header                  10033         232559         368953        1256555
Assembly                       1021          35605          41375         223098
make                           1087           4802           5388          16542
Perl                             25           1431           1648           7444
yacc                              5            447            318           2962
Bourne Shell                     50            464           1232           2922
C++                               1            205             58           1496
lex                               5            222            246           1399
HTML                              2             58              0            378
NAnt scripts                      1             85              0            299
Python                            3             62             77            277
Bourne Again Shell                4             55             22            265
Lisp                              1             63              0            218
ASP                               1             33              0            136
awk                               2             14              7             98
sed                               1              0              3             29
XSLT                              1              0              1              7
--------------------------------------------------------------------------------
SUM:                          23678        1348312        1561131        7001719
--------------------------------------------------------------------------------
.

you could always exclude them by listing out the files using regular expressions, for example,

*.txt will include only txt files and so on...

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top