Pular para o conteúdo

Duvida em relação ao while [RESOLVIDO]

Responder tópico
  • Denunciar
  • Indicar

1. Duvida em relação ao while [RESOLVIDO]

Enviado em 11/08/2016 - 13:25h

Com certeza eu estou fazendo errado kk, mas se alguém puder me ajudar eu seria grato.
A intenção do script é consultar o número de arquivos numa pasta, guardar esse numero. Depois, consultar o tamanho e o nome de cada arquivo e guardar em uma variavel. A intenção no while é pra guardar o nome e o tamanho em cada linha e fazer um insert no bnaco de dados. Porém o arquivo faz a consulta e não me retorna o que eu espero rsrs. Alguma ajuda :)
CONT=$(ls /hd2/backup/arquivos/ | wc -l)
echo $CONT
NUM=1
lista=`du -hs /hd2/backup/arquivos/*`

#----------------------------#

#----------------------------#

while [ $NUM -lt $CONT ]
do
cat $lista | awk 'NR==$NUM{print "Nome: "$2 "Tamanho: "$1}'
echo $NUM
# insert na database
(( NUM+= 1 ))
done

Responder tópico

2. Re: Duvida em relação ao while

Enviado em 11/08/2016 - 14:16h

aleff25 escreveu:

Com certeza eu estou fazendo errado kk, mas se alguém puder me ajudar eu seria grato.
A intenção do script é consultar o número de arquivos numa pasta, guardar esse numero. Depois, consultar o tamanho e o nome de cada arquivo e guardar em uma variavel. A intenção no while é pra guardar o nome e o tamanho em cada linha e fazer um insert no bnaco de dados. Porém o arquivo faz a consulta e não me retorna o que eu espero rsrs. Alguma ajuda :)
CONT=$(ls /hd2/backup/arquivos/ | wc -l)
echo $CONT
NUM=1
lista=`du -hs /hd2/backup/arquivos/*`

#----------------------------#

#----------------------------#

while [ $NUM -lt $CONT ]
do
cat $lista | awk 'NR==$NUM{print "Nome: "$2 "Tamanho: "$1}'
echo $NUM
# insert na database
(( NUM+= 1 ))
done
Boa tarde.

Aqui tem erro:
(( NUM+= 1 ))
Faça:
NUM=$(( NUM+ 1 ))
Ou
let NUM++

Observando o seu script, vc deseja LISTAR o NOME eo TAMANHO do arquivo . . .
Direto ao assunto:
ls -l|egrep '-'|awk -F" " '{print "NOME: " $9" TAMANHO: "$9}' 
Ou
du -hsb /hd2/backup/arquivos//*.*|awk -F" " '{print "NOME: " $2" TAMANHO: "$1}' 
É isso....

PS.:
Se a RESPOSTA te ajudou, sua duvida foi sanada, marque-a como " A MELHOR" . . .

Att.:
Marcelo Oliver

3. Re: Duvida em relação ao while [RESOLVIDO]

Enviado em 11/08/2016 - 14:57h

Eu fiz umas modificações aqui
e agora deu certo
CONT=$(ls /hd2/backup/arquivos/ | wc -l)
echo $CONT
NUM=0
LISTA=`du -hs /hd2/backup/arquivos/*`

#----------------------------#

#----------------------------#

while [ $NUM -lt $CONT ]
do
linha=`echo "$LISTA" | awk NR==$NUM`
echo "$linha"
echo "$NUM"
# insert na database
(( NUM+= 1 ))
done

Responder tópico

Responder tópico

Entre na sua conta para responder.

Fazer login para responder