Como saber quantas linhas de código existem para um shell CLI?

1

Como saber quantas linhas de código existem para um shell CLI, sem contar as linhas vazias?

O objetivo desta pergunta é saber como eu poderia contar as linhas de código para as conchas sh e Bash CLI.

Dado que o kernel tem cerca de 15 milhões de linhas de código, eu tive uma maravilha sobre a magnitude das linhas de código para esses 2 programas, deixando-me interagir com o kernel.

    
por Arcticooling 24.11.2017 / 14:01

2 respostas

3

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.

    
por 24.11.2017 / 15:00
-1

Se eu entendi corretamente, então seu amigo é o comando wc.

# cat example
passwd

group

# wc -l example
3 example

# grep -v "^$" example | wc -l
2

Ou apenas com o grep:

# grep -c . example
2

Se houver vários arquivos. Como um exemplo com o código fonte bash.

# wget -c https://ftp.gnu.org/gnu/bash/bash-4.4.tar.gz
# tar xfvz bash-4.4.tar.gz
# grep -R -c . bash-4.4/ | awk -F : '{sum += $2} END {print sum}'
    
por 24.11.2017 / 14:05