[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
RES: [shell-script] Comparação de datas
From: |
Julio Cezar Neves - DATAPREVRJ |
Subject: |
RES: [shell-script] Comparação de datas |
Date: |
Mon, 14 Nov 2005 17:32:14 -0200 |
Aê Rodrigo,
sort -n -t';' --key=6 Arquivo -o Arquivo
NUM=$(grep -n ";$DATA;" Arquivo | head -1 | cut -f1 -d:)
head -$((NUM-1)) Arquivo
explicando:
1a. linha: classifiquei Arquivo pela data dando a saida no próprio Arquivo
(vc pode dar a saída em outro, basta alterar seu nome na 2a. linha).
2a. linha: o grep com a opção -n listou o número das linhas (juntos com as
respectivas linhas separados por dois pontos). O head pegou a primeira linha
e o cut deixou somente o seu numero dentro da variável $NUM.
3a. linha: para pegar as datas anteriores subtrai 1 de NUM e fiz um head
para pegar até a data anterior.
Obs: isso só funciona se: a data correta estiver no arquivo; e existe o
perigo de em algum registro ter um campo que não o 6o. com valor idêntico ao
de $DATA.
Obedecidas estas duas restrições, creio que essa solução seja bem mais
rápida que o while.
[ ]s,
Julio
:wq
| -----Mensagem original-----
| De: Rodrigo Monteiro [mailto:address@hidden]
| Enviada em: segunda-feira, 14 de novembro de 2005 15:38
| Para: Lista Shell-script
| Assunto: [shell-script] Comparação de datas
|
|
| Olá pessoal,
|
| Tenho um arquivo com 6 campos separados por ";" e o último campo é uma
| data no formato "YYYYMMDD" (ano-mes-dia).
| Tenho uma variável contendo uma data no mesmo formato.
| O que eu quero fazer é pegar todas as linhas desse arquivo que a data
| é mais antiga do que a data da variável. Qual a melhor solução? while
| read LINHA ; do ; done < arquivo?
| E como faço a comparação entre as datas nesse formato, para saber se
| uma é mais antiga do que outra?
|
| []s
|
| --
| Rodrigo Monteiro
| "Free as in Freedom, not free as in free beer"
| JID: address@hidden
| address@hidden
|
|
| ---------------------------------------------------------------------
| Esta lista não admite a abordagem de outras liguagens de
| programação, como perl, C etc. Quem insistir em não seguir
| esta regra será moderado sem prévio aviso.
| ---------------------------------------------------------------------
| Sair da lista: address@hidden
| ---------------------------------------------------------------------
| Esta lista é moderada de acordo com o previsto em
http://www.listas-discussao.cjb.net
---------------------------------------------------------------------
Links do Yahoo! Grupos
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- RES: [shell-script] Comparação de datas,
Julio Cezar Neves - DATAPREVRJ <=