Expressões regulares diretamente no Bash
É muito mais comum (e muitas vezes mais portável, considerando padrões como o POSIX) recorrer a utilitários como o grep, sed e awk. Mas se você tem certeza de que seu script vai sempre ser executado por uma versão recente do Bash (posterior à versão 3, de 2004), pode fazer uso do suporte a expressões regulares diretamente na shell, com o operador =~
É simples (tanto quanto expressões regulares e shell podem ser – algo como if [[ "$linha" =~ ^[a-z] ]]) e tem as funcionalidades especiais, incluindo captura.
Saiba mais (linuxjournal.com).