SET date = DATE_ADD( fieldname, INTERVAL 2 DAY )
cat foo.c | sed '/^\s*$/d' | wc -l
И если Вы рассматриваете пустые строки комментариев:
cat foo.pl | sed '/^\s*#/d;/^\s*$/d' | wc -l
Хотя, это является языковозависимым.
Это - вид попытки зависеть от количества файлов, которые Вы имеете в проекте. В теории Вы могли использовать
grep -c '.' <list of files>
Где можно заполнить список файлов при помощи утилиты находки.
grep -c '.' `find -type f`
Дал бы Вам количество строки на файл.
awk '/^[[:space:]]*$/ {++x} END {print x}' "$testfile"
cat 'filename' | grep '[^ ]' | wc -l
должен добиться цели очень хорошо
'туалет' считает строки, слова, символы, так для подсчета всех строк (включая пустые) использованием:
wc *.py
Для отфильтровывания пустых строк можно использовать grep:
grep -v '^\s*$' *.py | wc
'-v' говорит grep производить все строки кроме тех, которые соответствуют '^', запуск строки '\s*', нуль, или больше пробельных символов '$' конец строки *.py, мой пример для всех файлов, Вы хотите считать (все файлы Python в текущем dir) вывод канала в туалет.Вперед.
Я отвечаю на свой собственный (подлинный) вопрос. Не удалось найти stackoverflow запись, которая покрыла это.
Если Вы хотите использовать что-то другое, чем сценарий оболочки, попробуйте CLOC:
cloc считает пустые строки, строки комментария и физические линии исходного кода на многих языках программирования. Это записано полностью в Perl без зависимостей вне стандартного распределения Perl v5.6, и выше (код от некоторых внешних модулей встроен в cloc), и является довольно портативным - также.
Существует много способов сделать это, с помощью общих утилит оболочки.
Мое решение:
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
#!/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 являются расширениями файлов, посмотревших на. Любые файлы с другим расширением проигнорированы.