No seu exemplo, grep 'c [abm] .t' a.txt produzirá quaisquer linhas de um arquivo.txt que contenha pelo menos quatro caracteres que você especificar. a 'c', ou 'a', 'b' ou 'm', 'qualquer caractere' e, em seguida, 't'.
'c [abm] .t' corresponde:
cart
caat
ca%t
caNt
cm_t
moo cbqt this whole line is returned because it contains a match
rocbtt
etc, etc.
Espero que isso ajude você a entender seu exemplo.
Expressões regulares podem ser incrivelmente complexas. Eu não posso recomendar nada de improviso além do que eu encontraria e estaria olhando pela primeira vez agora.
Esteja ciente de que existem muitos tipos e implementações diferentes, do grep (egrep / grep -E) ao perl, ao php, ao Javascript, etc.
Enquanto você brinca com eles, você se verá tendo que lembrar de escapar de algumas coisas da sua shell, e extrair outras coisas da própria regex ... onde você quer combinar um literal '.' (período), você precisaria grep 'moo\.'
para corresponder a 'moo'. e não 'moof'
O livro Mastering Regular Expressions da O'Reilly é considerado bastante definitivo.