Mover arquivo com saída [RESOLVIDO]

1. Mover arquivo com saída [RESOLVIDO]

Manoel Júnior
manoel.junior

(usa Red Hat)

Enviado em 28/04/2017 - 13:17h

Olá amigos,

Como eu poderia fazer para mover um arquivo mas antes de mover ele alimentar um arquivo TXT separado por | (pipe) com seu nome|data|hora e esse arquivo teria que acompanhar o dia, no dia seguinte ele alimenta outro arquivo com esses dados.

Exemplo:

arquivo_28042017.txt

arquivo1.txt|13:18|28042017

Depois das 00:00 alimentaria o arquivo_29042017.txt

Como eu poderia fazer isso? Obrigado amigos!


  


2. MELHOR RESPOSTA

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 28/04/2017 - 21:52h

manoel.junior escreveu:

Boa tarde Manoel, não consegui entender direito . . .
Antes de "MOVER" o arquivo, vc deseja pegar o nome dele , a data e a hora e inserir esses dados em um outro arquivo, é isso?
Tipo:
echo "NOME_DO_ARQUIVO|DATA|HORA" >> OUTRO_ARQUIVO.txt 


no aguardo,
marcelo oliver


Exato!! Desejo pegar o nome dos arquivos e a data e hora de cada um deles e jogar esses dados para um outro arquivo com o nome: arquivo_28042017.txt

Do jeito que você mencionou:

echo "NOME_DO_ARQUIVO|DATA|HORA" >> arquivo_28042017.txt 



Ae Manoel, veja se ajuda:
#!/bin/bash
ORIGEM="/COLOQUE_O_CAMINHO_COMPLETO_DO_DIR_DOS_ARQUIVOS/"
DESTINO="COLOQUE_O_CAMINHO_COMPLETO_PARA_ONDE_SERÃO_MOVIDOS"
#GERA ARQUIVOS
ls -gG --full-time ${ORIGEM}*.*|awk '{print $4,$5,$7}' >> ARQUIVOS
wait
while IFS=" " read -r CP01 CP02 CP03;do
CP01=$(awk -F"-" '{print $3$2$1}' <<< "$CP01")
CP02=$(cut -d"." -f1 <<< "$CP02")
CP03=$(basename "$CP03")
echo "$CP03|$CP02|$CP01" >> $(date +%d%m%Y).txt
mv ${ORIGEM}${CP03} ${DESTINO}$CP03
done<ARQUIVOS
wait
rm ARQUIVOS


OBS.:
Rode o script FORA DA PASTA onde estão os arquivos desejados.


Att.:
Marcelo Oliver

3. Re: Mover arquivo com saída [RESOLVIDO]

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 28/04/2017 - 16:37h

manoel.junior escreveu:

Olá amigos,

Como eu poderia fazer para mover um arquivo mas antes de mover ele alimentar um arquivo TXT separado por | (pipe) com seu nome|data|hora e esse arquivo teria que acompanhar o dia, no dia seguinte ele alimenta outro arquivo com esses dados.

Exemplo:

arquivo_28042017.txt

arquivo1.txt|13:18|28042017

Depois das 00:00 alimentaria o arquivo_29042017.txt

Como eu poderia fazer isso? Obrigado amigos!


Boa tarde Manoel, não consegui entender direito . . .
Antes de "MOVER" o arquivo, vc deseja pegar o nome dele , a data e a hora e inserir esses dados em um outro arquivo, é isso?
Tipo:
echo "NOME_DO_ARQUIVO|DATA|HORA" >> OUTRO_ARQUIVO.txt 


no aguardo,
marcelo oliver



4. Re: Mover arquivo com saída

Mauriciodez
Mauriciodez

(usa Debian)

Enviado em 28/04/2017 - 17:05h

manoel.junior escreveu:

Olá amigos,

Como eu poderia fazer para mover um arquivo mas antes de mover ele alimentar um arquivo TXT separado por | (pipe) com seu nome|data|hora e esse arquivo teria que acompanhar o dia, no dia seguinte ele alimenta outro arquivo com esses dados.

Exemplo:

arquivo_28042017.txt

arquivo1.txt|13:18|28042017

Depois das 00:00 alimentaria o arquivo_29042017.txt

Como eu poderia fazer isso? Obrigado amigos!


V se é isso que vc precisa

#!/bin/bash
data=`date +%d%m%Y`
arquivo=$(echo "$data.txt")
diretorio=/caminho/do/diretório/
if [ ! -e "$diretorio$arquivo" ] ; then
touch "$diretorio$arquivo"
cat /caminho/do/diretório/arquivo1.txt > "$diretorio$arquivo"
fi


coloque esse script para ser excutado de hora em hora no cron
_______________________________________________________________
" Nem sempre é amigo aquele que te tira do buraco !!! ( Saddam Hussein )"


5. Re: Mover arquivo com saída [RESOLVIDO]

Manoel Júnior
manoel.junior

(usa Red Hat)

Enviado em 28/04/2017 - 17:14h

Boa tarde Manoel, não consegui entender direito . . .
Antes de "MOVER" o arquivo, vc deseja pegar o nome dele , a data e a hora e inserir esses dados em um outro arquivo, é isso?
Tipo:
echo "NOME_DO_ARQUIVO|DATA|HORA" >> OUTRO_ARQUIVO.txt 


no aguardo,
marcelo oliver


Exato!! Desejo pegar o nome dos arquivos e a data e hora de cada um deles e jogar esses dados para um outro arquivo com o nome: arquivo_28042017.txt

Do jeito que você mencionou:

echo "NOME_DO_ARQUIVO|DATA|HORA" >> arquivo_28042017.txt 






6. Re: Mover arquivo com saída [RESOLVIDO]

Manoel Júnior
manoel.junior

(usa Red Hat)

Enviado em 28/04/2017 - 17:16h


V se é isso que vc precisa

#!/bin/bash
data=`date +%d%m%Y`
arquivo=$(echo "$data.txt")
diretorio=/caminho/do/diretório/
if [ ! -e "$diretorio$arquivo" ] ; then
touch "$diretorio$arquivo"
cat /caminho/do/diretório/arquivo1.txt > "$diretorio$arquivo"
fi


coloque esse script para ser excutado de hora em hora no cron
_______________________________________________________________
" Nem sempre é amigo aquele que te tira do buraco !!! ( Saddam Hussein )"


Obrigado, está quase lá.

Eu preciso da lista dos arquivos que estão no diretório, ou seja, dentro do arquivo gerado preciso que nele contenha nessa forma:

nome_do_arquivo|hora|data

Obrigadasso


7. Re: Mover arquivo com saída

Mauriciodez
Mauriciodez

(usa Debian)

Enviado em 28/04/2017 - 17:26h

manoel.junior escreveu:

[quote]
V se é isso que vc precisa

#!/bin/bash
data=`date +%d%m%Y`
arquivo=$(echo "$data.txt")
diretorio=/caminho/do/diretório/
if [ ! -e "$diretorio$arquivo" ] ; then
touch "$diretorio$arquivo"
cat /caminho/do/diretório/arquivo1.txt > "$diretorio$arquivo"
fi


Eu preciso da lista dos arquivos que estão no diretório, ou seja, dentro do arquivo gerado preciso que nele contenha nessa forma:

nome_do_arquivo|hora|data

Obrigadasso


olha só .. esse script busca no diretório um arquivo no formato DDMMAAAA.txt ... se não encontar ele cria e copia para dentro dele o conteúdo do arquivo "arquivo1.txt" ... que mais que vc precisa q eu não entendi ???

No caso de ser executado as 0 horas é melhor deixar para ser executado de hora em hora no cron, pois se o PC estiver desligado as 0 horas ele vai ser executado na proxima hora quando o pc estiver ligado.

_______________________________________________________________
" Nem sempre é amigo aquele que te tira do buraco !!! ( Saddam Hussein )"


8. Re: Mover arquivo com saída [RESOLVIDO]

Manoel Júnior
manoel.junior

(usa Red Hat)

Enviado em 28/04/2017 - 17:34h

olha só .. esse script busca no diretório um arquivo no formato DDMMAAA.txt ... se não encontar ele cria e copia para dentro dele o conteúdo do arquivo "arquivo1.txt" ... que mais que vc precisa q eu não entendi ???

No caso de ser executado as 0 horas é melhor deixar para ser executado de hora em hora no cron, pois se o PC estiver desligado as 0 horas ele vai ser executado na proxima hora quando o pc estiver ligado.


Eu preciso que nesse novo arquivo criado DDMMAAA.txt tenha a lista dos arquivos que estão dentro da variável $diretorio, nesse formato dentro:

NOMEDOARQUIVO|HORA|DATA

Ou seja, se tiver 3 arquivos lá: teste1.txt teste2.txt teste3.txt ele iria alimentando o arquivo 28042017.txt dessa forma:

teste1.txt|17:31:00|28042017
teste2.txt|17:31:10|28042017
teste3.txt|17:32:23|28042017

Os DBA's da empresa precisam desse arquivo desse jeito, e eles querem todos os arquivos que foram gerados no dia anterior, por isso que eu disse que eu precisava alimentar todos os dias gerando uma nova data sempre que for 00:00 (meia noite).

Não sou bom de explicar as coisas, me desculpe. Se puder continuar me ajudando, ficarei muito grato.


9. Re: Mover arquivo com saída [RESOLVIDO]

Mauriciodez
Mauriciodez

(usa Debian)

Enviado em 28/04/2017 - 17:40h

manoel.junior escreveu:
Ou seja, se tiver 3 arquivos lá: teste1.txt teste2.txt teste3.txt ele iria alimentando o arquivo 28042017.txt dessa forma:
teste1.txt|17:31:00|28042017
teste2.txt|17:31:10|28042017
teste3.txt|17:32:23|28042017
.


Deixa eu ver se entendi ... essa hora se refere a hora q o arquivo foi criado ou é a hora q ele foi incorporado ao 28042017.txt ??? e a data ???
_______________________________________________________________
" Nem sempre é amigo aquele que te tira do buraco !!! ( Saddam Hussein )"


10. Re: Mover arquivo com saída [RESOLVIDO]

Manoel Júnior
manoel.junior

(usa Red Hat)

Enviado em 28/04/2017 - 17:43h

Deixa eu ver se entendi ... essa hora se refere a hora q o arquivo foi criado ou é a hora q ele foi incorporado ao 28042017.txt ??? e a data ???


A data e a hora que o arquivo foi criado no servidor.


11. Re: Mover arquivo com saída [RESOLVIDO]

Mauriciodez
Mauriciodez

(usa Debian)

Enviado em 28/04/2017 - 21:34h

Velho ..fiz um script aqui, não é muito profissional não mas foi o q eu na minha competência consegui

a estrutura montei assim ... na pasta eu tenho o script e uma pasta (arquivos) onde ficam os arquivos pesquisados ... só rodar o script e v se tá de boa pra vc
#!/bin/bash
date=`date +%d%m%Y`
arquivo=$(echo "$date.txt")
if [ ! -e "$arquivo" ] ; then
mkdir tmp
arq=$( ls --full-time ./arquivos/* | awk '{print $9}' | cut -d'/' -f3 > ./tmp/arq )
dia=$( ls --full-time ./arquivos/* | awk '{print $6}' | cut -d'-' -f3 > ./tmp/dia )
mes=$( ls --full-time ./arquivos/* | awk '{print $6}' | cut -d'-' -f2 > ./tmp/mes )
ano=$( ls --full-time ./arquivos/* | awk '{print $6}' | cut -d'-' -f1 > ./tmp/ano )
hora=$( ls --full-time ./arquivos/* | awk '{print $7}' | cut -d'.' -f1 > ./tmp/hora )
paste ./tmp/dia ./tmp/mes ./tmp/ano > ./tmp/data
sed -i 's/\t//g' ./tmp/data
sed -i 's/$/|/g' ./tmp/data
sed -i 's/^/|/g' ./tmp/data
paste ./tmp/arq ./tmp/data ./tmp/hora > $date.txt
sed -i 's/\t//g' $date.txt
rm -rf ./tmp
else
echo "O arquivo já existe"
fi


aí é aquele lance ... coloca no cron para rodar de hora em hora.

NOTA: É bem provavel de vc ter q ajustar as variáveis de acordo com a saída que vc tem aí do comando "ls --full-time" ... esse comando é o único em q eu achei retorno no Debian para ver o ANO da criação dos arquivos.

NOTA1: se vc for colocar o script para rodar no cron, a parte onde se lê
else
echo "O arquivo já existe"
pode ser excluída

NOTA2: Esse meu script da para fazer com loop mas eu não consigo entender a porcaria do loop nem com reza, o marcelo tenho certeza q te consegue um script mais profissa.

Abçs
_______________________________________________________________
" Nem sempre é amigo aquele que te tira do buraco !!! ( Saddam Hussein )"


12. Re: Mover arquivo com saída [RESOLVIDO]

Mauriciodez
Mauriciodez

(usa Debian)

Enviado em 28/04/2017 - 22:09h

msoliver escreveu:
Ae Manoel, veja se ajuda
Att.:
Marcelo Oliver


KKKKKKKKKK .. acho top d+ os scripts q vc faz ... show e bola !! um dia eu chego lá !!!
_______________________________________________________________
" Nem sempre é amigo aquele que te tira do buraco !!! ( Saddam Hussein )"



01 02



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts