cloc — утилита для быстрого подсчёта строк кода в файлах и архивах.
В большинстве дистрибутивов cloc устанавливается из репозитория, либо его можно поставить с помощью npm или brew:
# dnf install cloc
Использование cloc.
Скачаем архив kernel репозитория с Github и выведем статистику по нему:
# wget https://github.com/torvalds/linux/archive/master.zip # cloc master.zip
Утилита работает не только с архивами или файлами, но и просто с директориями. Кроме обычного подсчёта, cloc может помочь, например, в обработке файлов или сравнении двух разных источников.
Для удаления пустых строк и комментариев из файлов можно воспользоваться параметром —strip-comments, выглядит это так:
# cloc --strip-comments=nc csf/
После выполнения этой команды, в директории, откуда она была выполнена, появятся файлы с расширением .nc — в них будет оставлен только код, а комментарии будут удалены.
Сравнить два файла можно с помощью параметра —diff:
# cloc --diff ezm.sh new.ezm.sh
Результатом вывода команды будет статистика по конкретному языку и общая статистика по строкам в файлах:
С помощью ключа —out мы можем записать результаты анализа в файл. В последствии результаты подсчёта можно обрабатывать объединив их:
# cloc --out ziparch.txt ezservermonitor-sh_v2.3.zip 1 text file. 1 unique file. 0 files ignored. Wrote ziparch.txt
# cloc --out tgzarch.txt csf.tgz 231 text files. 199 unique files. 141 files ignored. Wrote tgzarch.txt
Далее мы просто объединяем данные из двух отчётов:
# cloc --sum-reports *arch.txt
И получаем сводную информацию с результатами: