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

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

Re: [shell-script] Validação de datas


From: Julio C. Neves
Subject: Re: [shell-script] Validação de datas
Date: Wed, 8 Nov 2017 14:45:55 -0200

$ (($(sed -r 's/[^,]+,(.*),.*/\1/; s|/||g; s/,/-/' <<< 3XY3D,2015/09/30,2015/09/21,AF094) > 0)) && echo Data final \< inicial

Onde:
    1. s/[^,]+,(.*),.*/\1/ - Deixa somente as datas separadas por virgula;
    2. s|/||g - Mata as barras (/) ficando as dtas com formato AAAMMDD;
    3. s/,/-/ - Troca a vírgula entre as datas por um sinal de subtração.
Tb poderia, de uma forma menos elegante, ser feito assim:
$ (( $(cut -f2,3 -d,  <<< 3XY3D,2015/09/30,2015/09/21,AF094 | tr -d / | tr , -) > 0)) && echo Data final \< inicial

Shell é muuuuuito econômico!! ;)

OBS: A inscrição no curso de Shell em EAD começa hj, preço promocional por ser a 1a. turma (pode inclusive parcelar em 10 vezes ou -15% no boleto). Detalhes em www.dicas-l.com.br


Novidade! Dia 08/11​ abriremos as inscrições para um treinamento
de Shell Script que será lecionado em 5 semanas no formato EAD
e que será ministrado por Julio Neves e Rubens Queiroz (dicas-l)

* Atenção! Últimos treinamentos presenciais do ano! *
Cidade Local Período
Brasilia LinuxSolutions 27/11-01/12
São Paulo 4Linux 05-09/12
Rio de Janeiro LinuxSolutions 11-15/12

Damos treinamento em sua empresa com certificado
e nota fiscal por um preço, no mínimo, 50% mais
barato que qualquer curso.







Em 8 de novembro de 2017 13:52, PY2YP address@hidden [shell-script] <address@hidden.br> escreveu:
 

Olá pessoal,

Tenho um arquivo CSV com as linhas como abaixo:
3XY3D,2015/10/19,2015/10/31,AF094

O segundo e o terceiro campo são datas iniciais e finais no formato
aaaa/mm/dd.

Preciso validar as datas para que não ocorram erros como abaixo
3XY3D,2015/13/19,2015/10/31,AF094 ou
3XY3D,2015/09/30,2015/09/21,AF094 (neste caso data final ocorreu antes
da inicial) ou
3XY3D,2015/09/31,2015/10/31,AF094

Para saída, basta apontar "erro" na linha em que este ocorra:
3XY3D,2015/09/31,2015/10/31,AF094 erro.

Antecipadamente muito obrigado.

--
Cesar



reply via email to

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