우리는 PHP 응용 프로그램을 가지고 있으며 특정 디렉토리와 하위 디렉토리에서 모든 코드 줄을 계산하려고합니다. 우리는 단지 거친 아이디어를 얻으려고 노력하기 때문에 의견을 무시할 필요가 없습니다.
wc -l *.php
이 명령은 주어진 디렉토리 내에서 훌륭하게 작동하지만 하위 디렉토리는 무시합니다. 나는 이것이 효과가 있다고 생각했지만 74를 반환하고 있지만, 그렇지 않습니다 …
find . -name '*.php' | wc -l
모든 파일을 제공하는 올바른 구문은 무엇입니까?
답변
시험:
find . -name '*.php' | xargs wc -l
SLOCCount 도구도 도움이 될 수 있습니다.
그것은 당신이 가리키는 어떤 계층 구조와 몇 가지 추가 통계에 대한 정확한 소스 코드 줄을 줄 것입니다.
정렬 된 출력 :
find . -name '*.php' | xargs wc -l | sort -nr
답변
다른 하나의 라이너 :
( find ./ -name '*.php' -print0 | xargs -0 cat ) | wc -l
공백이있는 이름에서 작동하며 하나의 숫자 만 출력합니다.
답변
최신 버전의 Bash (또는 ZSH)를 사용하는 경우 훨씬 간단합니다.
wc -l **/*.php
Bash 셸에서는 globstar
옵션을 설정 해야하며 , 그렇지 않으면 **
glob 연산자가 재귀 적이 지 않습니다. 이 설정을 사용하려면 발행
shopt -s globstar
이 영구적하려면 초기화 파일 중 하나 (에 추가 ~/.bashrc
, ~/.bash_profile
등).
답변
cloc
이 정확한 목적으로 만들어진 유틸리티를 사용할 수 있습니다 . CLOC는 Linux, Mac 및 Windows에서 사용 가능합니다. CLOC는 Linux, Mac 및 Windows에서 사용 가능합니다.
사용법 및 출력 예 :
$ cloc --exclude-lang=DTD,Lua,make,Python .
2570 text files.
2200 unique files.
8654 files ignored.
http://cloc.sourceforge.net v 1.53 T=8.0 s (202.4 files/s, 99198.6 lines/s)
-------------------------------------------------------------------------------
Language files blank comment code
-------------------------------------------------------------------------------
Javascript 1506 77848 212000 366495
CSS 56 9671 20147 87695
HTML 51 1409 151 7480
XML 6 3088 1383 6222
-------------------------------------------------------------------------------
SUM: 1619 92016 233681 467892
-------------------------------------------------------------------------------
답변
UNIX 계열 시스템 cloc
에는 코드 통계를 제공 하는 도구가 있습니다.
코드베이스의 임의 디렉토리에서 실행되었습니다.
59 text files.
56 unique files.
5 files ignored.
http://cloc.sourceforge.net v 1.53 T=0.5 s (108.0 files/s, 50180.0 lines/s)
-------------------------------------------------------------------------------
Language files blank comment code
-------------------------------------------------------------------------------
C 36 3060 1431 16359
C/C++ Header 16 689 393 3032
make 1 17 9 54
Teamcenter def 1 10 0 36
-------------------------------------------------------------------------------
SUM: 54 3776 1833 19481
-------------------------------------------------------------------------------
답변
파일 수 또는 원하는 출력을 지정하지 않았습니다. 이것이 당신이 찾고있는 것입니까?
find . -name '*.php' | xargs wc -l
답변
또 다른 변형 🙂
$ find . -name '*.php' | xargs cat | wc -l
편집 : 파일 단위 대신 총 합계를 제공합니다.
Edit2 : 작동하도록 추가 .
후find