Para a versão mais recente do bash , ou seja, bash v4.4, a resposta é 134576. O comando que eu uso é
find . -name '*.[ch]' | xargs grep -v '^\s*$' | wc -l
find . -name '*.[ch]'
significa localizar arquivos que terminem com .c
ou .h
(sem contar os arquivos .def
, .po
, embora eu também ache que é parte do código-fonte)
em, grep -v '^\s*$'
(nota histórica, formulário de alteração [\ s *] para \ s *),
-
-v
imprime apenas as linhas que não correspondem -
^
significa início de linha -
$
significa fim da linha -
\s
significa espaços em branco, incluindo espaço, tabulação, avanço de linha
, então grep -v '^[\s]*$'
exclui linhas que têm apenas espaços em branco e wc -l
as conta.
Existem muitos códigos-fonte sh , para UNIX v6 sh ( link ). Existem apenas 860 linhas.