답변:
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
-------------------------------------------------------------------------------
Terminal.app를 열고 프로젝트의 루트 디렉토리로 이동하여 다음 명령을 실행하십시오.
스위프트에만 해당 :
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 : 디렉토리 변경
자동 완성
을 위해 Tab 키를 누르십시오. 공백 앞에 "\"백 슬래시를 두어야합니다
. 메인 프로젝트에서 한 폴더 아래로 내려가 프레임 워크에서 코드 수를 제거하는 것이 좋습니다.
터미널에서 프로젝트 디렉토리로 변경하고 다음을 실행하십시오.
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
빠르고 쉬운 방법 :
정규식 검색을 사용하십시오 (탐색기 찾기, 찾기> 정규식 선택).
.\엔
Xcode 검색 범위와 편리하게 작동하며 계산하려는 행 유형에 맞게 쉽게 사용자 정의 할 수 있습니다.
MacPorts를 통해 SLOCCount 를 설치할 수 있습니다 . 또는 더 요컨대 wc -l을 사용할 수 있습니다.
xcode에 익숙하지는 않지만 디렉토리 트리 내의 모든 특정 파일에서 줄 수를 세는 것만 필요하면 다음 명령을 사용할 수 있습니다.
find .... match of all those files ... -exec wc -l {} +
다음 여호수아 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 모두에서 유효합니다.
반복해서 죄송합니다. IMHO가 가장 쉬운 방법입니다.
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입니다.
이 간단한 도구의 저자입니다. 그것이 누군가를 도울 수 있기를 바랍니다.