[질문]하위폴더를 포함한 모든 소스의 라인 카운터 계산하는 쉘

player02의 이미지

하위폴더를 포함한 모든 소스의 라인 카운터 계산하는
쉘 스크립트를 만들고 싶은데 생각대로 잘 안되네요.--
도와주세요.^^
-------------------------------------------------------------------
#/bin/sh
#소스
TOTAL=0
for filename in $(ls -R)
do
if [ ! -d "$filename" ]
then
wc $filename | grep total | awk '{print $3}'
fi
done
------------------------------------------------------------------
결과
wc: MainMenu.ddp: No such file or directory
...

Fe.head의 이미지

#/bin/bash

total=0

for filename in $(find -name "*.c" -o -name "*.h")
do
        if [ ! -d "$filename" ]
        then
                i=$(wc $filename | awk '{print $1}')
                total=$((${total} + ${i}))
        fi
done
echo $total

find -name "*.c" -o -name "*.h"
를 적절히 바꾸어 쓰세요.

고작 블로킹 하나, 고작 25점 중에 1점, 고작 부활동
"만약 그 순간이 온다면 그때가 네가 배구에 빠지는 순간이야"

해밝의 이미지

파일의 갯수가 그리 많지 않다면

cat `find . -name *.[ch] ` | wc -l

이것도 괜찮을 것 같네요.. :wink:

hermian의 이미지

언어에 따라 다르지만 comment를 무시한다면

cat `find . -name "*.[ch]" -print ` | grep ';' | wc -l

정도도 괜찮을 것 같네요.
세벌의 이미지

hermian wrote:
언어에 따라 다르지만 comment를 무시한다면
cat `find . -name "*.[ch]" -print ` | grep ';' | wc -l

정도도 괜찮을 것 같네요.

while(i < 10)

이런 코드는 comment 도 아닌데 줄 수 계산할 때 빠지게 되지 않을까요?
cinsk의 이미지