Como posso contar quantas linhas existem no arquivo de texto. por exemplo :
command file.txt
Observe que quero contar apenas as linhas não vazias (linhas sem contar espaços em branco e tabulações) ?.
command-line
user93097373
fonte
fonte
\r
) ou ignorá-los. O atual responde a todas as linhas de contagem com espaços e pula apenas as vazias.\r
ou\n
), linhas com apenas guias e linhas com apenas espaços) e deseja ignorá-las como penso e respondi de acordo com O que eu entendi.Respostas:
A resposta acima está correta, mas um pouco diferente, você pode usar o
grep
para para um código mais fácil, comogrep -vc '^$' file.txt
Por exemplo (A): file.txt
Por exemplo (B): arquivo.txt
Observe que o resultado é 4! quando queremos esperar apenas dois. mas isso também conta as guias entre o conteúdo e o comentário.
Observe que a contagem de 0 e a contagem de 1 são diferentes do grep para o sed, pois eu lembro para mais detalhes, procure por grep ou sed.
fonte
sed
opção é realmente correto, mas agrep
pessoa não éTente
sed
:Se você possui alguma linha contendo apenas espaços ou tabulações e deseja ignorá-las também da contagem:
fonte
^\s*$
também para levar em conta linhas contendo apenas tabulação ou espaços.Usando
grep
:fonte
Você pode usar:
Se você precisar de um comando para isso, basta colar as seguintes linhas na sua
.bashrc
e reinicie a sessão do shell ou abra um novo terminal:Exemplo:
fonte
Com awk :
Explicação:
O
NF
indica o número total de campos e, portanto, isso imprime apenas linhas não em branco , pois nas linhas não em brancoNF
é maior que0
e avalia como verdadeiro. Portanto, aumente o sinalizador de contagem quando o awk encontrou linhas não em branco e imprima o valor mais recente do sinalizador de contagem no final atéEND{print count}
.fonte
Edit : você pode simplesmente adicionar a
c
opção aogrep
invés de canalizar tudowc
, veja a resposta do @ muru para uma versão mais compactaCom
grep
:fonte
Solução Perl
Perl pode fazer isso. Em geral, as linhas de contagem funcionam da seguinte maneira:
Se quisermos excluir todas as linhas vazias, faremos algo assim:
Digamos que tenhamos um arquivo de entrada como este
Há 5 linhas no total, 2 linhas vazias. O comando que temos apresentaria:
Melhoria em vários arquivos
Isso funciona bem para um único arquivo. Se quisermos que ele funcione em vários arquivos, podemos fazer algo assim:
fonte