shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Atualizando modificações recentes......


From: daniel
Subject: Atualizando modificações recentes......
Date: Tue, 15 Aug 2006 17:40:29 -0300

Oi gente,

Agora com o subject devidamente corrigido. Rss... 
Subject Anterior ( Tamanho de uma Variavel...)


Seguinte, 

Fiz vários testes com o comando 'diff' sugerido pelo Fabiano Caixeta e
com o comando 'comm' sugerido pelo Julio C Neves, para atualizar um
arquivo com as últimas implementações de outro.

Na verdade, o script que tinha aproximadamente 70 linhas com IFs CASEs,
etc... diminuiu drásticamnete.
Transcrevo abaixo o scipt final e peço aos colegas que me ajudem com um
errinho que ainda não descobri porque esta acontecendo...

Imaginem que o arquivo MONITORADO é um LOG da vida e que o arquivo
ADICIONADO ainda não existe..
O script cria o arquivo ADICIONADO e faz toda a importação dos dados do
arquivo MONITORADO.

Até ai tudo bem. Mas se eu rodar o script pela segunda vez logo em
seguida, mesmo que o arquivo MONITORADO não tenha sofrido alterações,
algumas linhas deste são copiadas para o arquivo ADICIONADO.
No meu entender, apenas deveria haver adição no arquivo ADICIONADO das
NOVAS LINHAS do arquivo MONITORADO. Porque estão sendo copiadas linhas
antigas que já haviam sido copiadas ?

Outro ponto é o seguinte. Desejo copiar todas as novas linhas do arquivo
MONITORADO mesmo que algumas delas sejam iguais à linhas copiadas
anteriormente.

Ex : 
Em 01/08 : Oi daniel, como está ?'
Nesta data, a linha 'Oi daniel, como está ?' e várias outras são
copiadas para o arquivo ADICIONADO.

Se em 05/08 outra linha com o mesmo conteudo aparecer no arquivo
MONITORADO, ela também deve ser copiada....


------------
MONITORADO=~daniel/Arquivos/Scrpts/Arquivo_Monitorado
ADICIONADO=~daniel/Arquivos/Scripts/Arquivo_Adicionado

[ ! -f $MONITORADO ] && exit
[ ! -f $ADICIONADO ] && touch $ADICIONADO

LIN_ATUL=$(comm -3 $MONITORADO $ADICIONADO | grep ^[a-zA-Z0-9] | wc -l)

comm -3 $MONITORADO $ADICIONADO | grep ^[a-zA-Z0-9] | tee -a $ADICIONADO
echo --- Adicionadas $LIN_ATUL linhas de $(wc -l $MONITORADO | \
     cut -d " " -f1) em $(date) | tee -a $ADICIONADO

------------


Atenciosamente,


Daniel Freitas





reply via email to

[Prev in Thread] Current Thread [Next in Thread]