티스토리 뷰

Backend/Server

[Mac] 파일의 라인수 구하기

out of coding 2017. 11. 9. 11:13

내가 만든 코드의 양을 알아보는 방법을 알아보도록 하겠습니다.


사건의 발단


아직까지 만들어낸 라인의 수를 가지고 산출물을 판단하는 회사가 있는것 같은데요.
뭐... 이런 기회로 하나씩 해보니깐 나쁘진 않지만...
이렇게 산출하는 방법은 C에서는 통하던 방법같은데, 요즘같은 재사용을 하는 코딩 방식에서는 이게 정말 맞나 싶기도 합니다.
실 예로 안드로이드 프로젝트를 하던중 이런 라인수로 계산을 하는 회사가 있어서, 막 가져다가 붙여 넣기를 하였더니
결과적으로는 소스는 걸레가 되었고, 안드로이드의 Dex Over도 경험하게 되었네요. ㅎㅎㅎ


라인수 만 구해보자!


자신이 원하는 파일의 확장자만 추가를 하면 됩니다.
그냥 가져다가 붙여넣으라고 하는거 아닙니다. 절대로 ㅎㅎㅎ
예는 m파일과 h파일의 라인수를 구하는 방법입니다.

1
find . \( -iname \*.m -o -iname \*.mm -o -iname \*.h \) -exec wc -l '{}' \+
cs

아마도 Objective-C로만 개발을 하신분들에게는 이걸로도 충분할것입니다.


특정 문자로 시작하는 라인을 구해보자!


특정 문자로 시작하는 라인을 구하는 방법은 아주 여러가지가 있을것입니다.
그렇지만 저는 이것저것 조합을 하면서 이것을 만들었으니깐 구문을 이해만 하시기 바랍니다.

예는 Objective-C에서 메소드를 구하는 방법에 대해서 입니다.
약간의 코딩스타일이 다르면 달라질수 있으니, 꼼수입니다.

1
find . \( -iname \*.m -o -iname \*.mm \) -exec grep -c '^[+-]\s\{0,\}(' '{}' \+ | awk 'BEGIN {FS=":"} {sum += $2} END { print "sum="sum }'
cs

설명을 드리자면 find명령으로 확장자가 m이거나 mm 인것을 찾습니다.
이후 grep로 그파일들중에 +나 -로 시작하고 스페이스를 0이상개 가지며 ( 가 붙어오는 라인을 메소드로 인식하였습니다.
최종적으로 awk를 사용하여서, 이 라인에서 : 로 split하고 난 이후에 뒤의 숫자들을 더하기를 했습니다.
아마 돌려보면 이해가 되실거고... 최종 결과는 sum=1000 이러한 형태로 나옵니다.

가끔 이런거하면 재미는 있기는한데, 안했으면 좋겠습니다. ^^

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함