해당 글에서는 Git에 존재하는 저장소에 대해 소스코드의 줄을 세는 방법에 대해 알아봅니다.
1) 프로젝트의 모든 줄(라인 수) 세기
💡 프로젝트의 모든 줄(라인 수) 세기 - 저장소의 모든 파일 내용을 읽어서 라인수를 세고 총 라인수를 표시합니다.
- Git이 설치되어 있고 저장소가 로컬 저장소에 있는 경우에만 작동합니다.
1. git ls-files 명령어는 저장소에 있는 모든 파일을 나열합니다. 2. xargs cat 명령어는 git ls-files로부터 전달받은 파일들을 cat 명령어에 전달하여 파일의 내용을 출력합니다. 3. wc -l 명령어는 cat으로부터 전달받은 파일 내용을 읽어 라인 수를 세고, 총 라인 수를 표시합니다.
# [예시] Git이 연결된 디렉터리로 이동합니다
$ cd Desktop/workspace/study/multi-flex-chatgpt
# Git 저장소에 있는 모든 파일의 라인 수를 세는 명령어입니다.
$ git ls-files | xargs cat | wc -l
2) 모든 파일 별 소스코드 줄(라인 수) 세기 명령어
💡 파일별 소스코드 줄 세기 명령어
- 저장소의 모든 파일을 나열한 다음 wc -l 명령으로 파일마다 라인 수를 세어 총 라인 수를 표시합니다.
- Git이 설치되어 있고 저장소가 로컬 저장소에 있는 경우에만 작동합니다. - 주석과 빈 줄을 포함하여 저장소의 모든 줄을 세기 때문에 유의해야 합니다.
# [예시] Git이 연결된 디렉터리로 이동합니다
$ cd Desktop/workspace/study/multi-flex-chatgpt
# 디렉터리의 모든 파일의 라인수를 셉니다.
$ git ls-files | xargs wc -l
3) 특정 디렉터리 소스코드 줄(라인 수) 세기
💡 특정 디렉토리 소스코드 줄 세기
- 저장소의 특정 디렉터리의 파일 내용을 읽어서 라인수를 세고 파일 별 라인 수와 총 라인 수를 표시합니다
- Git이 설치되어 있고 저장소가 로컬 저장소에 있는 경우에만 작동합니다. - 지정한 디렉터리 내의 파일만을 나열한 후 wc -l명령으로 파일마다 라인 수를 세어 총 라인 수를 표시합니다. - 주석과 빈 줄을 포함하여 저장소의 모든 줄을 세기 때문에 유의해야 합니다.
# [예시] Git이 연결된 디렉터리로 이동합니다
$ cd Desktop/workspace/study/multi-flex-chatgpt
# format
$ git ls-files <디렉터리 경로> | xargs wc -l
# 사용예시 : 프로젝트의 src 경로에 있는 모든 파일에 대해 소스코드 줄 세기 위한 명령어
$ git ls-files src | xargs wc -l
4) 확장자 별 특정 파일 소스코드 줄(라인 수) 세기
💡확장자 별 특정 파일 소스코드 줄(라인 수) 세기
- 확장자 별로 특정 파일을 검색하고 파일 내용을 읽어서 라인수를 세고 파일 별 라인수와 총 라인수를 표시합니다.
- Git이 설치되어 있고 저장소가 로컬 저장소에 있는 경우에만 작동합니다 - Git 저장소의 확장자에 따라 라인수를 세는 명령어입니다.
1. git ls-files 명령어는 저장소에 있는 모든 파일을 나열합니다. 2. grep '\.java' 명령어는 git ls-files로부터 전달받은 파일들 중에서 확장자가 .java인 파일들을 필터링합니다. 3. xargs wc -l 명령어는 grep으로부터 전달받은 파일들을 wc -l 명령어에 전달하여 파일의 라인 수를 세고, 총 라인 수를 표시합니다.
# [예시] Git이 연결된 디렉터리로 이동합니다
$ cd Desktop/workspace/study/multi-flex-chatgpt
# [예시] 확장자가 .java인 파일의 개수를 셉니다.
$ git ls-files | grep '\\.java' | xargs wc -l