내가 작성한 코드의 줄 수를 알아내는 명령인가요? [폐쇄]

내가 작성한 코드의 줄 수를 알아내는 명령인가요? [폐쇄]
find . -type f -name '*.c' -exec cat {} \; | sed '/^\s*#/d;/^\s*$/d;/^\s*\/\//d' | wc -l

누구든지 그 의미를 설명할 수 있나요?

답변1

설명하다:

find . -type f -name '*.c'.c- 이름과 확장자에 기호가 포함된 현재 디렉터리의 모든 파일을 반복적으로 찾습니다 . 보다man find

-exec cat {} \;- 이전 단계에서 찾은 파일의 내용을 가져옵니다. -exec 구문을 참조하세요.-exec command {} +

sed '/^\s*#/d;/^\s*$/d;/^\s*///d'- 여러 유형의 "댓글"(또는 유사한 콘텐츠)을 제거합니다. 이 섹션은 3개 부분으로 구성되어 있습니다 ;.

  1. /^\s*#/d- 줄 시작( ^), 0, 1 이상의 공백( \s*) 및 #기호. //d- 일치하는 문자열을 삭제합니다.
  2. /^\s*$/d- 빈 줄. 이전 섹션과 동일하지만 $줄 끝을 나타내는 기호가 있음
  3. /^\s*\/\//d- 앞에 0,1 이상의 공백이 있는 두 개의 슬래시( \/\/, - 인용 슬래시를 위한 백슬래시)가 있는 행과 일치합니다.\

wc -l- 코드 라인 수 계산

답변2

find . -type f -name '*.c'

.c로 끝나는 파일 찾기

-exec cat {} \;

명령을 실행하여 파일을 인쇄합니다. (실제로는 의미가 없습니다. 파일 이름을 파이프 대신 cat인수로 직접 전달할 수 있습니다 .)sed

| sed '/^\s*#/d;/^\s*$/d;/^\s*\/\//d'

파일에서 전처리기 지시문, 빈 줄 및 주석을 제거합니다. | wc -l명령에서 해당 부분을 제거하면 주석 없이 파일을 볼 수 있습니다.

| wc -l

주석을 필터링한 후 표시되는 총 줄 수를 계산합니다.

답변3

무슨 뜻인지 설명해 보세요. 좋아요 내 생각에 이것은 누군가가 명령 사이에 표준 출력을 연결하는 것을 좋아한다는 것을 의미한다고 생각합니다.

모든 것이 간단한 것으로 대체 될 수 있다고 생각합니다.

find . -type f -name '*.c' -exec grep -cv -e '^\s*#' -e '^\s*$' -e '^\s*//' {} \;

관련 정보