回答:
clocは、多くのプログラミング言語のソースコードの空白行、コメント行、および物理行をカウントします。
私はこれが浮いているのを見て、自分で使います:
find . "(" -name "*.m" -or -name "*.mm" -or -name "*.cpp" -or -name "*.swift" ")" -print0 | xargs -0 wc -l
私はCLOCを前述のようにNathan Kinsinger
使用しており、かなり使いやすいです。これは、プロジェクトディレクトリから追加して実行できるPERLスクリプトです。
PERLはすでにMac OSの一部であり、この方法でスクリプトを呼び出して、記述した行数を確認できます。
perl cloc-1.56.pl ./YourDirectoryWhereYourSourcesAre
これは私がそのようなコマンドから得た出力の例です:
176 text files.
176 unique files.
4 files ignored.
http://cloc.sourceforge.net v 1.56 T=2.0 s (86.0 files/s, 10838.0 lines/s)
-------------------------------------------------------------------------------
Language files blank comment code
-------------------------------------------------------------------------------
Objective C 80 3848 1876 11844
C/C++ Header 92 980 1716 1412
-------------------------------------------------------------------------------
SUM: 172 4828 3592 13256
-------------------------------------------------------------------------------
Terminal.appを開き、プロジェクトのルートディレクトリに移動して、次のコマンドを実行します。
Swiftの場合のみ:
find . \( -iname \*.swift \) -exec wc -l '{}' \+
Obj-Cの場合のみ:
find . \( -iname \*.m -o -iname \*.mm -o -iname \*.h \) -exec wc -l '{}' \+
Obj-C + Swiftの場合:
find . \( -iname \*.m -o -iname \*.mm -o -iname \*.h -o -iname \*.swift \) -exec wc -l '{}' \+
Obj-C + Swift + C + C ++の場合:
find . \( -iname \*.m -o -iname \*.mm -o -iname \*.c -o -iname \*.cc -o -iname \*.h -o -iname \*.hh -o -iname \*.hpp -o -iname \*.cpp -o -iname \*.swift \) -exec wc -l '{}' \+
ターミナルの簡単なヒント:
LS:リストディレクトリの内容
CD:ディレクトリ変更
自動補完するために押してタブ
のスペースの前に「\」バックスラッシュを置くことを忘れないでください
あなたはフレームワークからのコード数を取り除くので、私はメインのプロジェクトから一つ下のフォルダに行くことをお勧め
ターミナルで、プロジェクトディレクトリに移動して実行します。
find . -type f -print0 | xargs -0 cat | wc -l
特定のファイルタイプのみが必要な場合は、次のようなことを試してください
find . -type f -name \*.[ch]* -print0 | xargs -0 cat | wc -l
Xcode Statisticianをチェックしてください。それはまさにあなたが望んでいることです。また、他の興味深い統計情報も提供されるので、時々楽しむ価値があります。
グループでは検索されますが、実際のフォルダ内では検索されないことに注意してください。おそらく、実際のフォルダーを使用していないので、うまく機能します。フォルダを使用している場合は、各フォルダでカウントを行い、それらを一緒に追加する必要があります。
注: 2012年6月の時点で、これはXcodeの最新バージョンでは正しく動作しないようです。
ターミナルでプロジェクトのディレクトリに移動して、次のように入力します。
find . "(" -name "*.h" -or -name "*.m" -or -name "*.mm" -or -name "*.hpp" -or -name "*.cpp" -or -name "*.c" -or -name "*.cc" -or -name "*.swift" ")" -print0 | xargs -0 wc -l
これにより、プロジェクトの詳細と、各ファイルおよびプロジェクト全体の合計行数がわかります。
find . "(" -name "*.swift" ")" -print0 | xargs -0 wc -l
find . "(" -name "RE*.swift" ")" -print0 | xargs -0 wc -l
Nozziのバージョンは私には機能しませんが、これは次のバージョンです。
find . -type f -print0 | xargs -0 cat | wc -l
すばやく簡単な方法:
正規表現検索を使用します(ナビゲーターを検索、検索>正規表現を選択)。
。\ n
Xcodeの検索範囲で便利に機能し、カウントしたい種類の行に簡単にカスタマイズできます;)
SLOCCountはMacPortsからインストールできます。または、より大まかに、wc -lを使用できます。
私はxcodeに精通していませんが、ディレクトリツリー内の特定のファイルすべてから行数をカウントする必要がある場合は、次のコマンドを使用できます。
find .... match of all those files ... -exec wc -l {} +
Joshua Nozziの回答に従って、GNUでそのようなファイルの正規表現は次のようになります。
find . "(" -name "*.m" -or -name "*.mm" -or -name "*.cpp" -or -name "*.swift" ")" -exec wc -l {} +
あるいは
find -regex ".*\.\(m\|mm\|cpp\|swift\)$" -exec wc -l {} +
これは、いずれかで終わるすべてのファイルにマッチする正規表現を使用して.m
、.mm
、.cpp
または.swift
。これらの式の詳細については、ファイル検索で正規表現を使用する方法を参照してください。
Mac OSのfindを使用している場合は、Motti Shneorのコメントで説明されているように、少し異なるアプローチが必要です。
find -E . -regex ".*\.([hmc]|mm|cp+|swift|pch)$" -exec wc -l {} +
どちらも次の形式で出力を提供します。
234 ./file1
456 ./file2
690 total
したがって、このように維持するか、パイプtail -1
(つまりfind ... | tail -1
)にパイプするだけで、最後の行が合計になります。
\|
。--regex
GNU find(私が使用するもの)とMacOSの両方で有効です。
繰り返し申し訳ありません。それが私見の最も簡単な方法です。
find /users/<#username#>/documents/folderWithProject/ -type f -exec cp {} /users/<#username#>/documents/folderWithProject/newFolder/ \;
これにより、すべてのファイルがプロジェクトフォルダからにコピーされますnewFolder
。
newFolder
line-counter
良い選択肢です。CLOCよりも軽量で、他のコマンドよりもはるかに強力で使いやすくなっています。
簡単な概要
これがツールの入手方法です
$ pip install line-counter
line
コマンドを使用して、現在のディレクトリの下のファイル数と行数を取得します(再帰的に)
$ line
Search in /Users/Morgan/Documents/Example/
file count: 4
line count: 839
詳細が必要な場合は、を使用してくださいline -d
。
$ line -d
Search in /Users/Morgan/Documents/Example/
Dir A/file C.c 72
Dir A/file D.py 268
file A.py 467
file B.c 32
file count: 4
line count: 839
このツールの最も優れた点は、構成ファイルのような.gitignoreを追加できることです。「.gitignore」で行うように、カウントするファイルの種類を選択または無視するルールを設定できます。はい、このツールは、自分の行数を簡単に把握できるように考案されたものです。
詳細と使用法はこちら:https : //github.com/MorganZhang100/line-counter
私はこのシンプルなツールの作者です。それが誰かを助けることを願っています。