Concatenar arquivos usando um Array

1. Concatenar arquivos usando um Array

Wesley Pereira
producao_uss

(usa Outra)

Enviado em 18/05/2015 - 16:00h

Pessoal boa tarde.

Se possivel me ajudem com o script abaixo.

Basicamente preciso concatenar 'n' arquivos validando a sua existencia e conteudo.

#!/bin/bash
# -------------------------------------------------------------------
# DECLARACAO DE VARIAVEIS
# -------------------------------------------------------------------
V_Dia=`date +%d`
V_Mes=`date +%m`
V_Ano=`date +%Y`
V_hora=`date +%H`
V_minuto=`date +%M`
V_arquivo=`date +%Y``date +%m``date +%d`
#set +x

echo Mov_005141

cd /troca_ftp/Mov_005141/Envio/
pwd
## listando arquivo postados na area de ftp
ls *.txt
echo Concatenando arquivo para montar carga de processamento
listaArqs = (8902.txt 6815.txt 12701.txt)

for ((i=0; i<${#listaArqs[@]}; i++)); do
if [-e "${listaArqs[$i]}" ] then
if [-s "${listaArqs[$i]}" ] then
cat "${listaArqs[$i]}" > /troca_ftp/Mov_005141/Ret/MOV_DIA_CONCAT_EMBRATEC_`date +%Y``date +%m``date +%d`.hml
fi
fi
echo "${listaArqs[$i]}"
done

exit



  


2. Re: Concatenar arquivos usando um Array

Thiarles Medeiros
thiarlesmedeiros

(usa Ubuntu)

Enviado em 18/05/2015 - 17:13h


Não sei se é bem isso que tu quer.

#--------------------------------------------------------------------
#!/bin/bash
# -------------------------------------------------------------------
# DECLARACAO DE VARIAVEIS
# -------------------------------------------------------------------
V_Dia=`date +%d`
V_Mes=`date +%m`
V_Ano=`date +%Y`
V_hora=`date +%H`
V_minuto=`date +%M`
V_arquivo=`date +%Y``date +%m``date +%d`
#set +x

echo Mov_005141

cd /troca_ftp/Mov_005141/Envio/
pwd
## listando arquivo postados na area de ftp
ls *.txt
echo Concatenando arquivo para montar carga de processamento

nomeArquivo = "/troca_ftp/Mov_005141/Ret/MOV_DIA_CONCAT_EMBRATEC_`date +%Y``date +%m``date +%d`.hml";
for linha in $(ls -1 *.txt); do
if [[ -s $linha ]]; then
echo $linha >> $nomeArquivo;
echo $linha;
fi
done;

exit
#-----------------------------------------------------------

Observações:
"ls -1 *.txt" => lista um arquivo por linha
"if [[ -s $linha ]]" => -s testa se o arquivo existe e se o tamanho é maior que zero, não sendo necessário o 'if' com o -e
"cat $var >" => se utilizar apenas um '>' ele sobreescreve os dados do arquivo, se esta for a intensão blz, mas se a ideia é gerar uma lista não é a opção certa, aí tem que usar '>>' e o nome do arquivo não pode variar.

Espero ter ajudado.
[]'s


3. Re: Concatenar arquivos usando um Array

Wesley Pereira
producao_uss

(usa Outra)

Enviado em 19/05/2015 - 06:48h


Vou realizar o teste ainda hoje e ja lhe retorno com os resultados.

Obrigado






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts