количество (непустых) строк кода в bash - PullRequest
134 голосов
/ 22 сентября 2008

Как в Bash подсчитать количество непустых строк кода в проекте?

Ответы [ 17 ]

1 голос
/ 02 декабря 2011

Если вы хотите получить сумму всех непустых строк для всех файлов с заданным расширением в проекте:

while read line
do grep -cve '^\s*$' "$line"
done <  <(find $1 -name "*.$2" -print) | awk '{s+=$1} END {print s}'

Первый аргумент - это базовый каталог проекта, второй - расширение файла. Пример использования:

./scriptname ~/Dropbox/project/src java

Это немного больше, чем коллекция предыдущих решений.

1 голос
/ 14 августа 2011

Скрипт для рекурсивного подсчета всех непустых строк с определенным расширением файла в текущем каталоге:

#!/usr/bin/env bash
(
echo 0;
for ext in "$@"; do
    for i in $(find . -name "*$ext"); do
        sed '/^\s*$/d' $i | wc -l ## skip blank lines
        #cat $i | wc -l; ## count all lines
        echo +;
    done
done
echo p q;
) | dc;

Пример использования:

./countlines.sh .py .java .html
1 голос
/ 22 сентября 2008

Это будет зависеть от количества файлов в вашем проекте. Теоретически вы можете использовать

grep -c '.' <list of files>

Где вы можете заполнить список файлов с помощью утилиты поиска.

grep -c '.' `find -type f`

Даст вам счетчик строк на файл.

0 голосов
/ 05 мая 2012

В Linux уже есть программа для этого под названием 'wc'.

Just

wc -l *.c 

и выдает общее количество строк и строк для каждого файла.

0 голосов
/ 23 февраля 2011

Это дает количество строк без подсчета пустых строк:

grep -v ^$ filename wc -l | sed -e 's/ //g' 
0 голосов
/ 08 декабря 2016
rgrep . | wc -l

дает количество непустых строк в текущем рабочем каталоге.

0 голосов
/ 03 января 2011
grep -v '^\W*$' `find -type f` | grep -c '.' > /path/to/lineCountFile.txt

дает общее количество для всех файлов в текущем каталоге и его подкаталогах.

НТН!

...