aonde que eu estou errando no while [RESOLVIDO]

1. aonde que eu estou errando no while [RESOLVIDO]

marcio mendes mendes
conectadohost

(usa XUbuntu)

Enviado em 02/09/2016 - 15:46h

Olá, pessoal estou errando no while mas não sei onde.
tenho uma lista com nomes de usuários dessa forma

marciommm
root
marciommm
silva
carlos
marciommm
juca


o script deveria contar quantas vezes o usuario se repete mas somente contaria se o usuario se repetir mais de 2 vezes
e ficar em loop infinito repetindo a cada 5 segundos.
mas ta dando xabu e ta feia a coisa aqui.kkk

primeira tentativa fica assim
O Usuário marciommm se repete 2 vezes
Não Há Usuários Repetidos
Não Há Usuários Repetidos
Não Há Usuários Repetidos
O Usuário marciommm se repete 2 vezes
Não Há Usuários Repetidos


segunda tentativa fica em loop infinito mas não pega os usuarios
O Usuário se repete 6 vezes
sendo que ele se repete somente 3


#!/bin/bash
SHELL=/bin/sh
PATH=/sbin:/usr/sbin:/usr/bin:/bin

awk -F " " '{print "USS " $1 }' /bin/teste.txt | sed -r 's/(USS)//g'|
while read USS
do
VERIFICA=`cat /bin/teste.txt | grep "\b$USS\b" | wc -l `

if [ "$VERIFICA" -gt "1" ]; then
echo -e "\033[01;32m O Usuário $USS se repete $VERIFICA vezes "
else
echo -e "Não Há Usuários Repetidos "
fi
sleep 5
done


tentei fazer ele repetir o loop pra sempre mas dai não pegou os usuários e não contou direito.




  


2. MELHOR RESPOSTA

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 02/09/2016 - 16:17h

conectadohost escreveu:

Olá, pessoal estou errando no while mas não sei onde.
tenho uma lista com nomes de usuários dessa forma

marciommm
root
marciommm
silva
carlos
marciommm
juca


o script deveria contar quantas vezes o usuario se repete mas somente contaria se o usuario se repetir mais de 2 vezes
e ficar em loop infinito repetindo a cada 5 segundos.
mas ta dando xabu e ta feia a coisa aqui.kkk

primeira tentativa fica assim
O Usuário marciommm se repete 2 vezes
Não Há Usuários Repetidos
Não Há Usuários Repetidos
Não Há Usuários Repetidos
O Usuário marciommm se repete 2 vezes
Não Há Usuários Repetidos


segunda tentativa fica em loop infinito mas não pega os usuarios
O Usuário se repete 6 vezes
sendo que ele se repete somente 3


#!/bin/bash
SHELL=/bin/sh
PATH=/sbin:/usr/sbin:/usr/bin:/bin

awk -F " " '{print "USS " $1 }' /bin/teste.txt | sed -r 's/(USS)//g'|
while read USS
do
VERIFICA=`cat /bin/teste.txt | grep "\b$USS\b" | wc -l `

if [ "$VERIFICA" -gt "1" ]; then
echo -e "\033[01;32m O Usuário $USS se repete $VERIFICA vezes "
else
echo -e "Não Há Usuários Repetidos "
fi
sleep 5
done


tentei fazer ele repetir o loop pra sempre mas dai não pegou os usuários e não contou direito.

------------------------------------------------------------------------
Boa tarde Marcio, vamos lá ....
#!/bin/bash
SHELL=/bin/sh
PATH=/sbin:/usr/sbin:/usr/bin:/bin

while IFS=$'\n' read -r NOME;do
NN=$(egrep -c "$NOME" ARQUIVO_NOMES.txt)
if (($NN>1)); then
echo -e "\033[01;32m O Usuário $NOME se repete $NN vezes "
else
echo -e "\033[01;32m O Usuário $NOME NãO repete "
fi
sleep 5
done<ARQUIVO_NOMES.txt

SAIDA:
O Usuário marciommm se repete 3 vezes
O Usuário root NãO repete
O Usuário marciommm se repete 3 vezes
O Usuário silva NãO repete
O Usuário carlos NãO repete
O Usuário marciommm se repete 3 vezes
O Usuário juca NãO repete


É isso???

EDITADO
#!/bin/bash
SHELL=/bin/sh
PATH=/sbin:/usr/sbin:/usr/bin:/bin


sort ARQUIVO_NOMES.txt|uniq >> NOMES_UNICOS
while IFS=$'\n' read -r NOME;do
NN=$(egrep -c "$NOME" ARQUIVO_NOMES.txt)
if (($NN>1)); then
echo -e "\033[01;32m O Usuário $NOME repete $NN vezes /033[m"
else
echo -e "\033[01;32m O Usuário $NOME NãO repete /033[m"
fi
sleep 5
done<NOMES_UNICOS

SAIDA
O Usuário carlos NãO repete
O Usuário juca NãO repete
O Usuário marciommm se repete 3 vezes
O Usuário root NãO repete
O Usuário silva NãO repete


Att.:
Marcelo Oliver


3. Re: aonde que eu estou errando no while [RESOLVIDO]

marcio mendes mendes
conectadohost

(usa XUbuntu)

Enviado em 02/09/2016 - 16:28h

Olá,
Opa perfeito era isso que eu precisava
estou estudando o funcionamento desse script pra ver se consigo deixar em loop infinito
mas é para outro projeto.
para a finalidade desse tópico está perfeito
vai ganhar 500 pontos.kkkk


---> Márcio M M <---


4. Re: aonde que eu estou errando no while [RESOLVIDO]

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 02/09/2016 - 16:34h

conectadohost escreveu:

Olá,
Opa perfeito era isso que eu precisava
estou estudando o funcionamento desse script pra ver se consigo deixar em loop infinito
mas é para outro projeto.
para a finalidade desse tópico está perfeito
vai ganhar 500 pontos.kkkk
--> Márcio M M <---

_______________________________________
Marcio, editei . . .
Da uma verificada . . . .
Crio uma LISTA de NOMES UNICOS . . .
E pego o NOME dessa lista como "padrão do egrep . . .

Para fazer o LOOPING INFINITO, coloque numa função . . .

Jajá faço, vou almoçar . . .

Att
Marcelo Oliver




5. Re: aonde que eu estou errando no while [RESOLVIDO]

marcio mendes mendes
conectadohost

(usa XUbuntu)

Enviado em 03/09/2016 - 13:21h

Olá,
Pra loop infinito eu fiz um esquema que eu uso as vezes pra executar um script
um script com while pra executar outro script
as vezes faço isso com vários ao mesmo tempo.
las gambiarras.


#!/bin/bash
SHELL=/bin/sh
PATH=/sbin:/usr/sbin:/usr/bin:/bin

while true
do

script.sh

done


---> Márcio M M <---


6. outro exemplo

Jair Adriano da Silva Martins
jair1uol

(usa Outra)

Enviado em 01/10/2016 - 09:29h

#!/bin/bash

lista_ordenada=`sort teste.txt`

for nome in $lista_ordenada
do
if [ "$pre_anterior" = "$nome" ]; then
echo $nome REPETE 3 VEZES
else
unset $pre_anterior
unset $anterior
fi

if [ "$nome" = "$anterior" ]; then
pre_anterior=$nome
fi
anterior=$nome
done






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts