Xcodeプロジェクトに含まれるコードの行数を決定する方法はありますか?そのような情報を管理上の測定や従業員のベンチマークの目的に使用しないことを約束します。 ;)
CLOC を確認してください。
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
-------------------------------------------------------------------------------
ターミナルで、プロジェクトディレクトリに移動し、次を実行します。
find . -type f -print0 | xargs -0 cat | wc -l
特定のファイルタイプのみが必要な場合は、次のようなものを試してください
find . -type f -name \*.[ch]* -print0 | xargs -0 cat | wc -l
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:ディレクトリの変更
タブを押してオートコンプリートします
スペースの前に「\」バックスラッシュを置くことを忘れないでください
メインプロジェクトから1つ下のフォルダに移動して、フレームワークからコードカウントを取り除くことをお勧めします。
Xcode Statisticianをチェックしてください。まさにあなたが望むことをします。また、他の興味深い統計も提供するので、時々楽しみにしてみる価値があります。
グループでは見えますが、実際のフォルダの中では見えないことに注意してください。おそらく、実際のフォルダを使用していないので、うまく動作するでしょう。フォルダーを使用している場合は、各フォルダーでカウントを行い、それらを一緒に追加するだけです。
注: 2012年6月現在、これはXcodeの最新バージョンでは適切に動作しないようです。
プロジェクト内で次のコマンドを実行します。
find . -path ./Pods -Prune -o -name "*.Swift" -print0 ! -name "/Pods" | xargs -0 wc -l
または:
find . -path ./Pods -Prune -o -name "*[hm]" -print0 ! -name "/Pods" | xargs -0 wc -l
(*合計数からポッドファイル数を除く)
ターミナルでプロジェクトのディレクトリに移動して、次のように入力すると:
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
これにより、プロジェクトの内訳、および各ファイルとプロジェクト全体の行の合計が表示されます。
Nozziのバージョンは動作しませんが、これは:
find . -type f -print0 | xargs -0 cat | wc -l
MacPortsから SLOCCount をインストールできます。または、より大雑把に言うと、wc -lを使用できます。
すばやく簡単な方法:
正規表現検索を使用します(ナビゲータを検索、検索>正規表現を選択)。
。\ n
Xcodeの検索スコープで便利に動作し、カウントする行の種類に合わせて簡単にカスタマイズできます;)。
繰り返してすみません。それが私見の最も簡単な方法です:
find /users/<#username#>/documents/folderWithProject/ -type f -exec cp {} /users/<#username#>/documents/folderWithProject/newFolder/ \;
これにより、プロジェクトフォルダーのすべてのファイルがnewFolder
にコピーされます。
newFolder
私はxcodeに精通していませんが、必要なのがディレクトリツリー内のすべての特定のファイルの行数をカウントすることだけであれば、次のコマンドを使用できます。
find .... match of all those files ... -exec wc -l {} +
Joshua Nozzi's answer に従い、GNU findで、そのようなファイルの正規表現は次のようになります。
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
)にパイプするだけで、最後の行だけが合計になります。
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
そして、このツールの最良の部分は、configureファイルのような.gitignoreを追加できることです。 「.gitignore」で行うのと同じように、カウントするファイルの種類を選択または無視するルールを設定できます。はい、このツールは、私が何行持っているかを簡単に知るために考案されたものです。
詳細と使用方法はこちら: https://github.com/MorganZhang100/line-counter
私はこのシンプルなツールの作者です。それが誰かを助けることを願っています。
星やフォークは大歓迎です:P