$ (($(sed -r 's/[^,]+,(.*),.*/\1/; s|/||g; s/,/-/' <<< 3XY3D,2015/09/30,2015/09/21,AF094) > 0)) && echo Data final \< inicial
Onde:
- ((...)) - servem para chamar o interpretador aritmético do Bash;
- O sed está dividido em 3 partes:
- s/[^,]+,(.*),.*/\1/ - Deixa somente as datas separadas por virgula;
- s|/||g - Mata as barras (/) ficando as dtas com formato AAAMMDD;
- s/,/-/ - Troca a vírgula entre as datas por um sinal de subtração.
- Se o resultado for positivo, isto é, a date inicial for maior que a final, será dada a msg de erro
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