Sugestão para Script

1. Sugestão para Script

Leonardo Berbert Gomes
leoberbert

(usa Debian)

Enviado em 22/09/2009 - 16:57h

Amigos,

Estou apanhando um pouco de um script que compara duas colunas de data e se forem iguais, ele soma 60 dias na segunda coluna:

20100110235959 20100110235959

Poderiam me ajudar com isso?

OBS: No shell eu sei fazê-lo, porém ele demora muito pois meu arquivo é muito grande... Por isso estou optando pelo Perl...

Se alguém puder me ajudar, ficarei grato!!!


  


2. Re: Sugestão para Script

Denis Doria
thuck

(usa Debian)

Enviado em 22/09/2009 - 18:58h

Não manjo muito de perl, então fiz em python, não cheguei a testá-lo, mas deve funcionar sem muitos problemas:

import time
import sys

filename = sys.argv[1]
output = sys.argv[2]
file_input = open(filename, 'r')
file_output = open(output,'w')

for line in file_input:
fields = line[:-1].split(' ')
if fields[0] == fields[1]:
after = time.ctime(time.mktime(time.strptime(fields[1], '%Y%m%d%H%M%S') + 5184000, '%Y%m%d%H%M%S'))
file_output.write('%s %s\n' % (fields[0], after))
else:
file_output.write('%s %s\n' % (fields[0], fields[1]))

file_input.close()
file_output.close()

sys.exit(0)


3. Re: Sugestão para Script

Denis Doria
thuck

(usa Debian)

Enviado em 22/09/2009 - 19:01h

import time
import sys

filename = sys.argv[1]
output = sys.argv[2]
file_input = open(filename, 'r')
file_output = open(output,'w')

for line in file_input:
<tab>fields = line[:-1].split(' ')
<tab>if fields[0] == fields[1]:
<tab<tab>after = time.ctime(time.mktime(time.strptime(fields[1], '%Y%m%d%H%M%S') + 5184000, '%Y%m%d%H%M%S'))
<tab><tab>file_output.write('%s %s\n' % (fields[0], after))
<tab>else:
<tab><tab>file_output.write('%s %s\n' % (fields[0], fields[1]))

file_input.close()
file_output.close()

sys.exit(0)


Acho que agora dá para visualizar melhor.