количество (непробел) строки кода в ударе

SET date = DATE_ADD( fieldname, INTERVAL 2 DAY )
142
задан Jonathan Hartley 22 September 2008 в 13:20
поделиться

9 ответов

cat foo.c | sed '/^\s*$/d' | wc -l

И если Вы рассматриваете пустые строки комментариев:

cat foo.pl | sed '/^\s*#/d;/^\s*$/d' | wc -l

Хотя, это является языковозависимым.

182
ответ дан 23 November 2019 в 22:52
поделиться
cat file.txt | awk 'NF' | wc -l
0
ответ дан 23 November 2019 в 22:52
поделиться

Это - вид попытки зависеть от количества файлов, которые Вы имеете в проекте. В теории Вы могли использовать

grep -c '.' <list of files>

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

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

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

1
ответ дан 23 November 2019 в 22:52
поделиться
awk '/^[[:space:]]*$/ {++x} END {print x}' "$testfile"
4
ответ дан 23 November 2019 в 22:52
поделиться
cat 'filename' | grep '[^ ]' | wc -l

должен добиться цели очень хорошо

5
ответ дан 23 November 2019 в 22:52
поделиться

'туалет' считает строки, слова, символы, так для подсчета всех строк (включая пустые) использованием:

wc *.py

Для отфильтровывания пустых строк можно использовать grep:

grep -v '^\s*$' *.py | wc

'-v' говорит grep производить все строки кроме тех, которые соответствуют '^', запуск строки '\s*', нуль, или больше пробельных символов '$' конец строки *.py, мой пример для всех файлов, Вы хотите считать (все файлы Python в текущем dir) вывод канала в туалет.Вперед.

Я отвечаю на свой собственный (подлинный) вопрос. Не удалось найти stackoverflow запись, которая покрыла это.

13
ответ дан 23 November 2019 в 22:52
поделиться

Если Вы хотите использовать что-то другое, чем сценарий оболочки, попробуйте CLOC:

cloc считает пустые строки, строки комментария и физические линии исходного кода на многих языках программирования. Это записано полностью в Perl без зависимостей вне стандартного распределения Perl v5.6, и выше (код от некоторых внешних модулей встроен в cloc), и является довольно портативным - также.

35
ответ дан 23 November 2019 в 22:52
поделиться

Существует много способов сделать это, с помощью общих утилит оболочки.

Мое решение:

grep -cve '^\s*$' <file>

Это ищет строки в <файле>, не соответствует (-v) строкам, которые соответствуют шаблону (-e) '^\\s* $ ', который является началом строки, сопровождаемой 0 или больше пробельными символами, сопровождаемыми к концу строки (т.е. никакое содержание другой затем пробел), и отобразите количество согласующих отрезков длинной линии (-c) вместо самих согласующих отрезков длинной линии.

Преимущество этого метода по методам, которые включают передачу по каналу в wc, это, можно указать несколько файлов и получить отдельный счет для каждого файла:

$ grep -cve '^\s*$' *.hh

config.hh:36
exceptions.hh:48
layer.hh:52
main.hh:39
26
ответ дан 23 November 2019 в 22:52
поделиться
#!/bin/bash
find . -path './pma' -prune -o -path './blog' -prune -o -path './punbb' -prune -o -path './js/3rdparty' -prune -o -print | egrep '\.php|\.as|\.sql|\.css|\.js' | grep -v '\.svn' | xargs cat | sed '/^\s*$/d' | wc -l

Вышеупомянутое даст Вам общее количество строк кода (удаленные пустые строки) для проекта (текущая папка и все подпапки рекурсивно).

В вышеупомянутом "./punbb" "./js/3rdparty" и "./pma" являются папками, которые я помещаю в черный список, поскольку я не написал код в них. Также .php, .as, .sql, .css, .js являются расширениями файлов, посмотревших на. Любые файлы с другим расширением проигнорированы.

51
ответ дан 23 November 2019 в 22:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: