Como você usou o quantificador *
(zero ou mais), sua expressão corresponderá a todas as linhas. Mude para
grep -i "^[a-c]" data.txt
e deve funcionar como você pretende.
Eu estou tentando grep linhas onde o primeiro caractere é um A, B ou C.
Estou tentando isso:
grep -i "^[a-c]*" data.txt
Eu quero que apenas se preocupe com o primeiro personagem, o resto da linha que eu não me importo.
Como você usou o quantificador *
(zero ou mais), sua expressão corresponderá a todas as linhas. Mude para
grep -i "^[a-c]" data.txt
e deve funcionar como você pretende.