ler varios arquivos txt [RESOLVIDO]

1. ler varios arquivos txt [RESOLVIDO]

rodrigo martins
rodrigomb

(usa CentOS)

Enviado em 06/02/2009 - 10:49h

olá pessoal estou com uma duvida aqui, eu estou bolando um script que vai pegar varios arquivos de log em uma pasta e jogar pra um ftp meu em pastas separadas (clientes)

o problema é q eu preciso ler cada arquivo e mandar via ftp na pasta especifica , com 1 arquivo só consegui, eu adicionei um numero no comeco do arquivo , li com um cat e fiz um case com ftp pra cada pasta especifica do cliente no meu ftp.

a duvida agora é como ler todos os arquivos de log de uma vez tipo um cat pra cada arquivo: arq1.txt arq2.txt arq3.txt... depois usar a parte do meu script pra enviar via ftp.

pode ter logs de cliente 1 , cliente 2 etc...

usando um for será?

desculpe se nao fui claro, se quiserem eu colo o codigo aqui e explico melhor caso nao entendam minha dificuldade.

obrigado


  


2. Re: ler varios arquivos txt [RESOLVIDO]

Robson Padilha Cordeiro
robsonpc

(usa Debian)

Enviado em 06/02/2009 - 11:07h

Use um loop pros cat com o for e sete uma variavel pro numero do arquivo:

x=0
for
cat arq(x+1).txt //cada passada incrementa 1
end for

//ta + ou - pra vc ter uma ideia :) So acertar a sintaxe. Ta meio Delphi mas espero que entenda rss


3. Re: ler varios arquivos txt [RESOLVIDO]

Sandro Marcell
SMarcell

(usa Slackware)

Enviado em 06/02/2009 - 11:18h

Seria isso:

$ cat arq1.txt arq2.txt arq3.txt ... > concatenado.txt

O arquivo 'concatenado.txt' terá como conteúdo todos os textos contidos nos arquivos arq1.txt arq2.txt ...

Um exemplo em shell script:
----------
#!/bin/sh
cat "$@" > concatenado.txt
----------

Executando:
$ ./script arq1.txt arq2.txt arq3.txt ...



4. Re: ler varios arquivos txt [RESOLVIDO]

rodrigo martins
rodrigomb

(usa CentOS)

Enviado em 06/02/2009 - 12:01h

obrigado pelas respostas me abriram os olhos!

eu acho q consegui resolver com as dicas, usei o for com awk para pegar a lista dos arquivos no txt e depois o cat, pelo menos ele ta pegando de uma lista que eu fiz do diretorio e mandando certinho pra cada pasta especifica no servidor... so falta agora gerar a lista dos txts do diretorio q eu vou setar


ai vai o codigo pra quem quiser observar/usar


for i in $(awk '{print $1}' teste.txt)
do

id_empresa=$(cat $i | head -n 5 | tail -n 1)

case $id_empresa in

1)

arquivo=$i
log_dir=/opt/
dir_cliente=/diretorio/ftp/cliente1

ftp -vn ftp.blablabla.com.br <<EOF
user usuario senha
passive
binary
cd $dir_cliente
lcd $log_dir
put $arquivo
quit
EOF
;;
2)

arquivo=$i
log_dir=/opt/
dir_cliente=/diretorio/ftp/cliente2

ftp -vn ftp.blablabla.com.br <<EOF
user usuario senha
passive
binary
cd $dir_cliente
lcd $log_dir
put $arquivo
quit
EOF
;;
esac

done

ai por exemplo em cada log meu na 5º linha eu botei numero... tipo cliente1 = 1 , cliente 2 = 2 etc...

ai eu vou gerar uma lista de txts do diretorio /opt/ q no caso ai é o teste.txt

ai o scripq eu colei vai ler arquivo por arquivo listado no teste.txt na 5 linha e jogar no ftp na pasta correspondente.

nao vou marcar como resolvido ainda pois ainda vou testar em definitivo depois do almoço.

obrigado pela ajuda galera






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts