Подтвердить что ты не робот

Количество числовых строк в файле

В подсчет (непустые) строки кода в bash они объясняют, как подсчитывать количество непустых строк.

Но есть ли способ подсчитать количество пустых строк в файле? Пустой линией я также подразумеваю линии, в которых есть пробелы.

4b9b3361

Ответ 1

Другой способ:

grep -cvP '\S' file
  • -P '\S' (perl regex) будет соответствовать любой строке, содержащей пробел
  • -v выберите несогласованные строки
  • -c напечатать количество совпадающих строк

Если ваш grep не поддерживает параметр -P, используйте -E '[^[:space:]]'

Ответ 2

Один из способов: grep:

grep -c "^$" file

Или с пробелом:

grep -c "^\s*$" file 

Ответ 3

Использование однострочного интерфейса Perl:

perl -lne '$count++ if /^$/; END { print int $count }' input.file

Ответ 4

Чтобы подсчитать, сколько бесполезных пустых строк ваш коллега вставил в проект, вы можете запустить однострочную команду следующим образом:

blankLinesTotal=0; for file in $( find . -name "*.cpp" ); do blankLines=$(grep -cvE '\S' ${file}); blankLinesTotal=$[${blankLines} + ${blankLinesTotal}]; echo $file" has" ${blankLines} " empty lines."  ; done; echo "Total: "${blankLinesTotal}

Отпечатки:

<filename0>.cpp #blankLines
....
....
<filenameN>.cpp #blankLines
Total #blankLinesTotal

Ответ 5

Вы также можете использовать awk для этого:

awk '!NF {sum += 1} END {print sum}' file

Из руководства "Переменная NF установлена ​​на общее число полей во входной записи". Поскольку разделитель полей по умолчанию - это пространство, любая строка, состоящая либо из ничего, либо из каких-либо пробелов, будет иметь NF=0.

Затем, это вопрос подсчета, сколько раз это происходит.

Test

$ cat a
aa dd

ddd


he      llo
$ cat -vet a # -vet to show tabs and spaces
aa dd$
    $
ddd$
   $
^I$
he^Illo$

Теперь давайте подсчитаем количество пустых строк:

$ awk '!NF {s+=1} END {print s}' a
3

Ответ 6

grep -v '\S' | wc -l

(В OSX выражения Perl недоступны, опция -P)