Como posso contar o número de linhas de um arquivo com ferramentas comuns? [duplicado]

121

Estou redirecionando grep resultados para um arquivo e, em seguida, usando cat para exibir seu conteúdo na tela. Eu quero saber quantas linhas de resultados eu tenho no meu arquivo de resultados e, em seguida, adicioná-lo a algum contador.

Qual será o melhor caminho? Qualquer sinalizador relevante para grep ou cat ?

    
por Jeff Schaller 24.11.2011 / 16:13

6 respostas

140

Se você já tiver coletado a saída grep em um arquivo, poderá gerar uma lista numerada com:

cat -n myfile

Se você quiser apenas o número de linhas, basta fazer:

wc -l myfile

Não há absolutamente nenhuma razão para fazer isso:

cat myfile | wc -l

... como isso desnecessariamente faz I / O (o cat ) que wc tem que repetir. Além disso, você tem dois processos em que um é suficiente.

Se você quiser grep no seu terminal e imprimir uma contagem dos jogos no final, você pode fazer:

grep whatever myfile | tee /dev/tty | wc -l
    
por 24.11.2011 / 17:03
59

A -c flag fará o trabalho. Por exemplo:

 grep -c ^ filename

contará as linhas retornadas por grep

    
por 24.11.2011 / 16:18
18

Use

your_command | wc -l

Do manual:

NAME
       wc - print newline, word, and byte counts for each file

...

       -l, --lines
          print the newline counts
    
por 24.11.2011 / 16:15
5

Usando o AWK para contar as linhas em um arquivo

awk 'END {print NR}' filename
    
por 22.10.2015 / 09:46
4

Você pode usar wc -l para obter contagem de linhas.

Exemplo:

$ cat foobar.txt | wc -l
    
por 24.11.2011 / 16:17
0

Não use o wc: ele não conta a última linha se não for terminado pelo símbolo do fim da linha (pelo menos no mac). Use isso em vez disso:

nbLines=$(cat -n file.txt | tail -n 1 | cut -f1 | xargs)
    
por 18.10.2015 / 07:36

Tags