txt - wc-l linux




Como contar linhas em um documento? (13)

A ferramenta wc é o "contador de palavras" em sistemas operacionais UNIX e UNIX, você também pode usá-la para contar linhas em um arquivo, adicionando a opção -l , então wc -l foo contará o número de linhas em foo . Você também pode canalizar a saída de um programa como este: ls -l | wc -l ls -l | wc -l , que informará quantos arquivos estão no diretório atual.

https://code.i-harness.com

Eu tenho linhas como essas e quero saber quantas linhas eu realmente tenho ...

09:16:39 AM  all    2.00    0.00    4.00    0.00    0.00    0.00    0.00    0.00   94.00
09:16:40 AM  all    5.00    0.00    0.00    4.00    0.00    0.00    0.00    0.00   91.00
09:16:41 AM  all    0.00    0.00    4.00    0.00    0.00    0.00    0.00    0.00   96.00
09:16:42 AM  all    3.00    0.00    1.00    0.00    0.00    0.00    0.00    0.00   96.00
09:16:43 AM  all    0.00    0.00    1.00    0.00    1.00    0.00    0.00    0.00   98.00
09:16:44 AM  all    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00
09:16:45 AM  all    2.00    0.00    6.00    0.00    0.00    0.00    0.00    0.00   92.00

Existe uma maneira de contar todos eles usando comandos do Linux?



Como os outros disseram wc -l é a melhor solução, mas para referência futura você pode usar Perl:

perl -lne 'END { print $. }'

$. contém o número da linha e o bloco END será executado no final do script.


Eu sei que isso é antigo, mas ainda: conte as linhas filtradas

Meu arquivo parece:

Number of files sent
Company 1 file: foo.pdf OK
Company 1 file: foo.csv OK
Company 1 file: foo.msg OK
Company 2 file: foo.pdf OK
Company 2 file: foo.csv OK
Company 2 file: foo.msg Error
Company 3 file: foo.pdf OK
Company 3 file: foo.csv OK
Company 3 file: foo.msg Error
Company 4 file: foo.pdf OK
Company 4 file: foo.csv OK
Company 4 file: foo.msg Error

Se eu quiser saber quantos arquivos foram enviados OK:

grep "OK" <filename> | wc -l

OU

grep -c "OK" filename

Eu vi essa pergunta enquanto estava procurando uma maneira de contar várias linhas de arquivos, então se você quiser contar várias linhas de arquivo de um arquivo .txt você pode fazer isso,

cat *.txt | wc -l

ele também será executado em um arquivo .txt;)


Ou conte todas as linhas em subdiretórios com um padrão de nome de arquivo (por exemplo, arquivos de log com registros de data e hora no nome do arquivo):

wc -l ./**/*_SuccessLog.csv

Redirecionamento / Piping a saída do arquivo para wc -l deve ser suficiente, como o seguinte:

cat /etc/fstab | wc -l

que então forneceria o não. apenas de linhas.


Se tudo que você quer é o número de linhas (e não o número de linhas e o nome do arquivo estúpido voltando):

wc -l < /filepath/filename.ext

Como mencionado anteriormente, estes também funcionam (mas são inferiores por outras razões):

awk 'END{print NR}' file       # not on all unixes
sed -n '$=' file               # (GNU sed) also not on all unixes
grep -c ".*" file              # overkill and probably also slower

Use nl assim:

nl filename

Do man nl :

Escreva cada FILE na saída padrão, com números de linha adicionados. Sem FILE, ou quando FILE é -, leia a entrada padrão.


Use wc :

wc -l <filename>

existem muitos caminhos. usar wc é um deles.

wc -l file

outros incluem

awk 'END{print NR}' file

sed -n '$=' file (GNU sed)

grep -c ".*" file

cat file.log | wc -l | grep -oE '\d+'
  • grep -oE '\d+' : Para retornar os números dos dígitos SOMENTE .

wc -l file.txt | cut -f3 -d" "

Retorna apenas o número de linhas





scripting