Exemplos de contadores em linha de comando e scripts, contar linhas, registros, palavaras e etc.
let = Contador para implementar de um em um use neste formato
let I++
++ efetua adição de 1, na primeira execução define I=1, na segunda adiciona 1 e assim por diante.
let I-- subtração, cada vez que executar diminue 1.
Veja a sequencia de comandos e o retorno.
let I++ echo $I 1 let I++ echo $I 2 let I++ echo $I 3 let I-- echo $I 2 let I-- echo $I 1 let I-- echo $I 0 let I-- echo $I -1 let I-- echo $I -2
do man do wc
-c, --bytes print the byte counts -m, --chars print the character counts -l, --lines print the newline counts -w, --words print the word counts
Alguns exemplos e resultados.
Acrescente no final da linha de comando um pipe |
mais wc opção.
echo "contar as palavras" | wc -w
retorna 3 que é o numero de palavras.
contar byte ou caracteres
echo "contar byte ou caracteres" | wc -c 26 echo -n "contar byte ou caracteres" | wc -c 25
Observe que o resultado muda com (echo -n), não enviar o final de linha, veja o man echo
-n do not output the trailing newline
Ou seja, -n serve para echo não colocar o \n
no final da linha, na contagem de bytes o final de linha também é considerado como um byte ou caractere.
Contar as palavras de um arquivo.
cat arq.txt | wc -w
contar as linhas de um arquivo.
cat arq.txt | wc -l
Contar o numero de ocorrencias no log, neste exemplo, contar nos ultimos 1000 registros no log do apache, quantas linhas tem a palavra samba
tail -1000 /var/log/apache2/access_log | grep samba | wc -l
Contar linhas de todos arquivos do diretório corrente
wc -l *
Contar linhas somente dos arquivos .txt
wc -l *.txt
Contar linhas de arquvo especifico.
wc -l < arquivo.txt
wc -l arquivo.txt
echo "contar byte ou caracteres" | awk '{print length($0)};'
qtbytes=`echo "contar byte ou caracteres"` echo ${#qtbytes} 25
Inserindo um contador e (break) para encerrar e sair do while depois de n vezes.
#!/bin/bash contador=1 while true ; do echo "isto é um teste" sleep 2 contador=$(($contador+1)) # ou comente a linha acima e remova o comentario da proxima linha #contador=`expr $contador + 1` if [ $contador -gt 5 ]; then echo "while encerrado, executou 5 vezes " break exit 1 fi done
Usei a variável contador para facilitar o entendimento, simplifique por outra qualquer, como exemplo com a letra "i" no exemplo abaixo.
#!/bin/bash i=1 while true ; do echo "isto é um teste" sleep 2 i=$[$i+1] if [ $i -gt 5 ]; then echo "while encerrado, executou 5 vezes " break exit 1 fi done