Usando case
Para verificar se uma variável shell começa com ABC ou ABD, um método tradicional (e muito portátil) é usar uma instrução case:
case "$value" in
AB[CD]*) echo yes;;
*) echo no;;
esac
Como isso não requer processos externos, deve ser rápido.
Usando [
Como alternativa, pode-se usar um comando teste :
if [ "${value#AB[CD]}" != "$value" ]
then
echo yes
else
echo no
fi
Isso também é bastante portátil.
Usando [[
Por último, pode-se usar o comando mais moderno e menos portátil test :
if [[ $value == AB[CD]* ]]
then
echo yes
else
echo no
fi
Lendo o arquivo e testando tudo em uma etapa
Para ler a primeira linha não vazia de um arquivo e testar se seu primeiro campo começa com ABC ou ABD:
awk 'NF{if (~/^AB[CD]/) print "yes"; else print "no";exit}' file