$ (($(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:
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.
* 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!! ;)