Duvida em relação ao while [RESOLVIDO]

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

Aleff Rodrigues
aleff25

(usa CentOS)

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



  


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

Marcelo Oliver
msoliver

(usa Debian)

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]

Aleff Rodrigues
aleff25

(usa CentOS)

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







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts